make const_alloc_layout feature gate only about functions that are already stable
the rest has their constness guarded by their usual feature gate
This commit is contained in:
parent
a8e1186e3c
commit
c9e77e8776
@ -216,7 +216,7 @@ pub const fn for_value<T: ?Sized>(t: &T) -> Self {
|
|||||||
/// [trait object]: ../../book/ch17-02-trait-objects.html
|
/// [trait object]: ../../book/ch17-02-trait-objects.html
|
||||||
/// [extern type]: ../../unstable-book/language-features/extern-types.html
|
/// [extern type]: ../../unstable-book/language-features/extern-types.html
|
||||||
#[unstable(feature = "layout_for_ptr", issue = "69835")]
|
#[unstable(feature = "layout_for_ptr", issue = "69835")]
|
||||||
#[rustc_const_unstable(feature = "const_alloc_layout", issue = "67521")]
|
#[rustc_const_unstable(feature = "layout_for_ptr", issue = "69835")]
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub const unsafe fn for_value_raw<T: ?Sized>(t: *const T) -> Self {
|
pub const unsafe fn for_value_raw<T: ?Sized>(t: *const T) -> Self {
|
||||||
// SAFETY: we pass along the prerequisites of these functions to the caller
|
// SAFETY: we pass along the prerequisites of these functions to the caller
|
||||||
@ -232,7 +232,6 @@ pub const fn for_value<T: ?Sized>(t: &T) -> Self {
|
|||||||
/// 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")]
|
|
||||||
#[must_use]
|
#[must_use]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn dangling(&self) -> NonNull<u8> {
|
pub const fn dangling(&self) -> NonNull<u8> {
|
||||||
@ -256,6 +255,7 @@ pub const fn dangling(&self) -> NonNull<u8> {
|
|||||||
/// `align` violates the conditions listed in [`Layout::from_size_align`].
|
/// `align` violates the conditions listed in [`Layout::from_size_align`].
|
||||||
#[stable(feature = "alloc_layout_manipulation", since = "1.44.0")]
|
#[stable(feature = "alloc_layout_manipulation", since = "1.44.0")]
|
||||||
#[rustc_const_unstable(feature = "const_alloc_layout", issue = "67521")]
|
#[rustc_const_unstable(feature = "const_alloc_layout", issue = "67521")]
|
||||||
|
#[cfg_attr(not(bootstrap), rustc_const_stable_indirect)]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn align_to(&self, align: usize) -> Result<Self, LayoutError> {
|
pub const fn align_to(&self, align: usize) -> Result<Self, LayoutError> {
|
||||||
if let Some(align) = Alignment::new(align) {
|
if let Some(align) = Alignment::new(align) {
|
||||||
@ -282,7 +282,6 @@ pub const fn align_to(&self, align: usize) -> Result<Self, LayoutError> {
|
|||||||
/// address for the whole allocated block of memory. One way to
|
/// address for the whole allocated block of memory. One way to
|
||||||
/// satisfy this constraint is to ensure `align <= self.align()`.
|
/// satisfy this constraint is to ensure `align <= self.align()`.
|
||||||
#[unstable(feature = "alloc_layout_extra", issue = "55724")]
|
#[unstable(feature = "alloc_layout_extra", issue = "55724")]
|
||||||
#[rustc_const_unstable(feature = "const_alloc_layout", issue = "67521")]
|
|
||||||
#[must_use = "this returns the padding needed, \
|
#[must_use = "this returns the padding needed, \
|
||||||
without modifying the `Layout`"]
|
without modifying the `Layout`"]
|
||||||
#[inline]
|
#[inline]
|
||||||
@ -332,6 +331,7 @@ const fn size_rounded_up_to_custom_align(&self, align: Alignment) -> usize {
|
|||||||
/// to the layout's current size.
|
/// to the layout's current size.
|
||||||
#[stable(feature = "alloc_layout_manipulation", since = "1.44.0")]
|
#[stable(feature = "alloc_layout_manipulation", since = "1.44.0")]
|
||||||
#[rustc_const_unstable(feature = "const_alloc_layout", issue = "67521")]
|
#[rustc_const_unstable(feature = "const_alloc_layout", issue = "67521")]
|
||||||
|
#[cfg_attr(not(bootstrap), rustc_const_stable_indirect)]
|
||||||
#[must_use = "this returns a new `Layout`, \
|
#[must_use = "this returns a new `Layout`, \
|
||||||
without modifying the original"]
|
without modifying the original"]
|
||||||
#[inline]
|
#[inline]
|
||||||
@ -374,7 +374,6 @@ pub const fn pad_to_align(&self) -> Layout {
|
|||||||
/// assert_eq!(repeated, (Layout::from_size_align(24, 4).unwrap(), 8));
|
/// assert_eq!(repeated, (Layout::from_size_align(24, 4).unwrap(), 8));
|
||||||
/// ```
|
/// ```
|
||||||
#[unstable(feature = "alloc_layout_extra", issue = "55724")]
|
#[unstable(feature = "alloc_layout_extra", issue = "55724")]
|
||||||
#[rustc_const_unstable(feature = "const_alloc_layout", issue = "67521")]
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn repeat(&self, n: usize) -> Result<(Self, usize), LayoutError> {
|
pub const fn repeat(&self, n: usize) -> Result<(Self, usize), LayoutError> {
|
||||||
let padded = self.pad_to_align();
|
let padded = self.pad_to_align();
|
||||||
@ -432,6 +431,7 @@ pub const fn repeat(&self, n: usize) -> Result<(Self, usize), LayoutError> {
|
|||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "alloc_layout_manipulation", since = "1.44.0")]
|
#[stable(feature = "alloc_layout_manipulation", since = "1.44.0")]
|
||||||
#[rustc_const_unstable(feature = "const_alloc_layout", issue = "67521")]
|
#[rustc_const_unstable(feature = "const_alloc_layout", issue = "67521")]
|
||||||
|
#[cfg_attr(not(bootstrap), rustc_const_stable_indirect)]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn extend(&self, next: Self) -> Result<(Self, usize), LayoutError> {
|
pub const fn extend(&self, next: Self) -> Result<(Self, usize), LayoutError> {
|
||||||
let new_align = Alignment::max(self.align, next.align);
|
let new_align = Alignment::max(self.align, next.align);
|
||||||
@ -463,7 +463,6 @@ pub const fn extend(&self, next: Self) -> Result<(Self, usize), LayoutError> {
|
|||||||
///
|
///
|
||||||
/// On arithmetic overflow, returns `LayoutError`.
|
/// On arithmetic overflow, returns `LayoutError`.
|
||||||
#[unstable(feature = "alloc_layout_extra", issue = "55724")]
|
#[unstable(feature = "alloc_layout_extra", issue = "55724")]
|
||||||
#[rustc_const_unstable(feature = "const_alloc_layout", issue = "67521")]
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn repeat_packed(&self, n: usize) -> Result<Self, LayoutError> {
|
pub const fn repeat_packed(&self, n: usize) -> Result<Self, LayoutError> {
|
||||||
if let Some(size) = self.size.checked_mul(n) {
|
if let Some(size) = self.size.checked_mul(n) {
|
||||||
@ -481,7 +480,6 @@ pub const fn repeat_packed(&self, n: usize) -> Result<Self, LayoutError> {
|
|||||||
///
|
///
|
||||||
/// On arithmetic overflow, returns `LayoutError`.
|
/// On arithmetic overflow, returns `LayoutError`.
|
||||||
#[unstable(feature = "alloc_layout_extra", issue = "55724")]
|
#[unstable(feature = "alloc_layout_extra", issue = "55724")]
|
||||||
#[rustc_const_unstable(feature = "const_alloc_layout", issue = "67521")]
|
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn extend_packed(&self, next: Self) -> Result<Self, LayoutError> {
|
pub const fn extend_packed(&self, next: Self) -> Result<Self, LayoutError> {
|
||||||
// SAFETY: each `size` is at most `isize::MAX == usize::MAX/2`, so the
|
// SAFETY: each `size` is at most `isize::MAX == usize::MAX/2`, so the
|
||||||
@ -497,6 +495,7 @@ pub const fn extend_packed(&self, next: Self) -> Result<Self, LayoutError> {
|
|||||||
/// `isize::MAX`, returns `LayoutError`.
|
/// `isize::MAX`, returns `LayoutError`.
|
||||||
#[stable(feature = "alloc_layout_manipulation", since = "1.44.0")]
|
#[stable(feature = "alloc_layout_manipulation", since = "1.44.0")]
|
||||||
#[rustc_const_unstable(feature = "const_alloc_layout", issue = "67521")]
|
#[rustc_const_unstable(feature = "const_alloc_layout", issue = "67521")]
|
||||||
|
#[cfg_attr(not(bootstrap), rustc_const_stable_indirect)]
|
||||||
#[inline]
|
#[inline]
|
||||||
pub const fn array<T>(n: usize) -> Result<Self, LayoutError> {
|
pub const fn array<T>(n: usize) -> Result<Self, LayoutError> {
|
||||||
// Reduce the amount of code we need to monomorphize per `T`.
|
// Reduce the amount of code we need to monomorphize per `T`.
|
||||||
|
Loading…
Reference in New Issue
Block a user