Skip to content

Migrate libraries from ptr::slice_from_raw_parts to .cast_slice#156109

Open
Paladynee wants to merge 1 commit intorust-lang:mainfrom
Paladynee:lib/cast-slice-improvements
Open

Migrate libraries from ptr::slice_from_raw_parts to .cast_slice#156109
Paladynee wants to merge 1 commit intorust-lang:mainfrom
Paladynee:lib/cast-slice-improvements

Conversation

@Paladynee
Copy link
Copy Markdown
Contributor

@Paladynee Paladynee commented May 3, 2026

Tracking issue for #![feature(ptr_cast_slice)]: #149103
This commit updates most callsites of ptr::slice_from_raw_parts within ./library to the more concise but unstable postfix .cast_slice() method on raw pointers, using the ptr_cast_slice feature. Some tests in alloctests have also been updated.

No functional change, debatably improved readability.

@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented May 3, 2026

stdarch is developed in its own repository. If possible, consider making this change to rust-lang/stdarch instead.

cc @Amanieu, @folkertdev, @sayantn

@rustbot rustbot added O-SGX Target: SGX S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels May 3, 2026
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented May 3, 2026

r? @jhpratt

rustbot has assigned @jhpratt.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: libs
  • libs expanded to 7 candidates
  • Random selection from Mark-Simulacrum, jhpratt, nia-e

@Paladynee
Copy link
Copy Markdown
Contributor Author

some notable places like core::slice::from_raw_parts have not been updated, because i felt like changing that would harm readability than improving it.

@rust-log-analyzer

This comment has been minimized.

@Paladynee
Copy link
Copy Markdown
Contributor Author

hmm wait let me revert that doc change, apparently it is exactly the same in std::ptr::slice_from_raw_parts. this is all so confusing since all the names are super similar lol

@rust-log-analyzer

This comment has been minimized.

@Paladynee Paladynee force-pushed the lib/cast-slice-improvements branch 3 times, most recently from 5533d7b to fced58f Compare May 3, 2026 15:10
@xtqqczze
Copy link
Copy Markdown
Contributor

xtqqczze commented May 3, 2026

Could &*ptr::slice_from_raw_parts be written as slice::from_raw_parts?

@jhpratt
Copy link
Copy Markdown
Member

jhpratt commented May 4, 2026

stdarch is developed in its own repository. If possible, consider making this change to rust-lang/stdarch instead.

Aside from this, r=me

@jhpratt
Copy link
Copy Markdown
Member

jhpratt commented May 4, 2026

@rustbot author

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 4, 2026
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented May 4, 2026

Reminder, once the PR becomes ready for a review, use @rustbot ready.

@Paladynee
Copy link
Copy Markdown
Contributor Author

Paladynee commented May 4, 2026

Could &*ptr::slice_from_raw_parts be written as slice::from_raw_parts?

i believe they are equivalent other than the debug UB assertion, yes

@Paladynee
Copy link
Copy Markdown
Contributor Author

Paladynee commented May 4, 2026

I'm not touching anything in;

  • coretests
  • core::slice
  • any ptr::slice_from_raw_parts{_mut} call in stable documentations
  • believe i can revert the stdarch thing since it seems too complicated for me to change for now

with that, i think this pr is ready

@rustbot ready

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 4, 2026
@Paladynee Paladynee force-pushed the lib/cast-slice-improvements branch from fced58f to e030a3f Compare May 4, 2026 17:33
@xtqqczze
Copy link
Copy Markdown
Contributor

xtqqczze commented May 5, 2026

Could &*ptr::slice_from_raw_parts be written as slice::from_raw_parts?

The library/core/src/slice/sort/shared/smallsort.rs changes should be reverted as they conflict with #156192.

@Paladynee Paladynee force-pushed the lib/cast-slice-improvements branch from e030a3f to 14315f9 Compare May 6, 2026 01:47
@Paladynee
Copy link
Copy Markdown
Contributor Author

Could &*ptr::slice_from_raw_parts be written as slice::from_raw_parts?

The library/core/src/slice/sort/shared/smallsort.rs changes should be reverted as they conflict with #156192.

done

@jhpratt
Copy link
Copy Markdown
Member

jhpratt commented May 7, 2026

@bors r+ rollup

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 7, 2026

📌 Commit 14315f9 has been approved by jhpratt

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 7, 2026
jhpratt added a commit to jhpratt/rust that referenced this pull request May 7, 2026
…nts, r=jhpratt

Migrate libraries from ptr::slice_from_raw_parts to .cast_slice

Tracking issue for `#![feature(ptr_cast_slice)]`: rust-lang#149103
This commit updates most callsites of ptr::slice_from_raw_parts within ./library to the more concise but unstable postfix `.cast_slice()` method on raw pointers, using the `ptr_cast_slice` feature. Some tests in alloctests have also been updated.

No functional change, debatably improved readability.
rust-bors Bot pushed a commit that referenced this pull request May 7, 2026
Rollup of 14 pull requests

Successful merges:

 - #146273 (lint ImproperCTypes: refactor linting architecture (part 2))
 - #149509 (Lint unused pub items in binary crates)
 - #156173 (Fewer global node_id_to_def_id lookups)
 - #156177 (windows/time: avoid being too close to 0)
 - #155961 (Deny warnings in the test for crates that are available on stable)
 - #155981 (Use special DefIds for aliases)
 - #156109 (Migrate libraries from ptr::slice_from_raw_parts to .cast_slice)
 - #156130 (Fold/visit tweaks)
 - #156131 (Metadata macro/query cleanups)
 - #156202 (llvm: Use correct type for splat mask)
 - #156227 (Add Trusty OS to the generic error implementation.)
 - #156237 (compiletest: prevent directives from having multiple revisions)
 - #156241 (Move tests coercion)
 - #156258 (Document wasi-sdk minimum versions for WASI targets)
@jhpratt
Copy link
Copy Markdown
Member

jhpratt commented May 7, 2026

@bors r-

#156263 (comment)

@rust-bors rust-bors Bot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels May 7, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 7, 2026

This pull request was unapproved.

This PR was contained in a rollup (#156263), which was unapproved.

View changes since this unapproval

assert_eq!(size % elem_size, 0);
let len = size / elem_size;
ptr::slice_from_raw_parts_mut(ptr as _, len)
(ptr as _).cast_slice(len)
Copy link
Copy Markdown
Contributor

@xtqqczze xtqqczze May 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  error[E0282]: type annotations needed
     --> /rustc/620725bffcba2613fa6243f559657c2bedb5615f/library/std/src/sys/pal/sgx/abi/usercalls/alloc.rs:154:9
      |
  154 |         (ptr as _).cast_slice(len)
      |         ^^^^^^^^^^ cannot infer type

https://github.com/rust-lang/rust/actions/runs/25475505562/job/74748095499#step:28:10939

View changes since the review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

O-SGX Target: SGX S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants