diff options
| author | bors <bors@rust-lang.org> | 2022-07-10 06:26:03 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-07-10 06:26:03 +0000 |
| commit | 95e77648e466c780a9adce2fa3d3eb5e423dc04e (patch) | |
| tree | 762773e1168956c00981deb80267e49fb2195ea1 /library/core/src/alloc/layout.rs | |
| parent | 100142b258e570a2c8fbd713eecc77a8fe6c0435 (diff) | |
| parent | 0753fd117bebe14306823432f6a195d32aab85d3 (diff) | |
| download | rust-95e77648e466c780a9adce2fa3d3eb5e423dc04e.tar.gz rust-95e77648e466c780a9adce2fa3d3eb5e423dc04e.zip | |
Auto merge of #97522 - xfix:stabilize-slice-from-raw-parts, r=dtolnay
Partially stabilize const_slice_from_raw_parts
This doesn't stabilize methods working on mutable pointers.
This pull request continues from #94946.
Pinging `@rust-lang/wg-const-eval` this because I use `rustc_allow_const_fn_unstable`. I believe this is justifiable as it's already possible to use `slice::from_raw_parts` in stable by abusing `transmute`. The stable alternative to this would be to provide a stable const implementation of `std::ptr::from_raw_parts` (as it can already be implemented in stable).
```rust
use std::mem;
#[repr(C)]
struct Slice<T> {
data: *const T,
len: usize,
}
fn main() {
let data: *const i32 = [1, 2, 3, 4].as_ptr();
let len = 4;
println!("{:?}", unsafe {
mem::transmute::<Slice<i32>, &[i32]>(Slice { data, len })
});
}
```
`@rustbot` modify labels: +T-libs-api
Diffstat (limited to 'library/core/src/alloc/layout.rs')
0 files changed, 0 insertions, 0 deletions
