Closed
Description
Make slice::from_raw_parts
and slice::from_raw_parts_mut
a const fn available under a feature flag.
This would require a change in the ptr
module as well, as slice module just forwards to it.
slice::from_raw_parts[mut]
is used in alot of places (e.g slice::from_ref[mut]
, which would get one step closer into constification if slice::from_raw_parts[mut]
is a const fn.
Here is a little playground to show it's possible:
https://play.rust-lang.org/?version=nightly&mode=release&edition=2018&gist=dd5c506a3e082c619f557d972e9956ff
In order to get this working, the following functions and functionalities need to be constified:
-
ptr::slice_from_raw_parts
(Make ptr::slice_from_raw_parts a const fn available under a feature flag #67462)
Implementation PR for ptr::slice_from_raw_parts
: #67462
Partially stabilized in #97522; remaining unstable functions:
// core::ptr
pub const fn slice_from_raw_parts_mut<T>(data: *mut T, len: usize) -> *mut [T];
// core::slice
pub const unsafe fn from_raw_parts_mut<'a, T>(data: *mut T, len: usize) -> &'a mut [T];
// core::ptr::NonNull
pub const fn slice_from_raw_parts(data: NonNull<T>, len: usize) -> Self
Metadata
Metadata
Assignees
Labels
Area: Constant evaluation, covers all const contexts (static, const fn, ...)Area: raw pointers, MaybeUninit, NonNullArea: `[T]`Blocker: Implemented in the nightly compiler and unstable.Category: An issue tracking the progress of sth. like the implementation of an RFCLibs issues that are considered "small" or self-containedLibs issues that are tracked on the team's project board.Relevant to the library API team, which will review and decide on the PR/issue.This issue / PR is in PFCP or FCP with a disposition to merge it.The final comment period is finished for this PR / Issue.