rust/library/core/src
Matthias Krüger 80d592cc24
Rollup merge of #122964 - joboet:pointer_expose, r=Amanieu
Rename `expose_addr` to `expose_provenance`

`expose_addr` is a bad name, an address is just a number and cannot be exposed. The operation is actually about the provenance of the pointer.

This PR thus changes the name of the method to `expose_provenance` without changing its return type. There is sufficient precedence for returning a useful value from an operation that does something else without the name indicating such, e.g. [`Option::insert`](https://doc.rust-lang.org/nightly/std/option/enum.Option.html#method.insert) and [`MaybeUninit::write`](https://doc.rust-lang.org/nightly/std/mem/union.MaybeUninit.html#method.write).

Returning the address is merely convenient, not a fundamental part of the operation. This is implied by the fact that integers do not have provenance since
```rust
let addr = ptr.addr();
ptr.expose_provenance();
let new = ptr::with_exposed_provenance(addr);
```
must behave exactly like
```rust
let addr = ptr.expose_provenance();
let new = ptr::with_exposed_provenance(addr);
```
as the result of `ptr.expose_provenance()` and `ptr.addr()` is the same integer. Therefore, this PR removes the `#[must_use]` annotation on the function and updates the documentation to reflect the important part.

~~An alternative name would be `expose_provenance`. I'm not at all opposed to that, but it makes a stronger implication than we might want that the provenance of the pointer returned by `ptr::with_exposed_provenance`[^1] is the same as that what was exposed, which is not yet specified as such IIUC. IMHO `expose` does not make that connection.~~

A previous version of this PR suggested `expose` as name, libs-api [decided on](https://github.com/rust-lang/rust/pull/122964#issuecomment-2033194319) `expose_provenance` to keep the symmetry with `with_exposed_provenance`.

CC `@RalfJung`
r? libs-api

[^1]: I'm using the new name for `from_exposed_addr` suggested by #122935 here.
2024-04-03 22:11:00 +02:00
..
alloc SeqCst->Relaxed in doc examples. 2024-03-19 15:27:11 +01:00
array Import the 2021 prelude in the core crate 2024-03-25 13:12:06 -07:00
ascii implement Default for AsciiChar 2024-02-13 12:04:44 +01:00
async_iter Step all bootstrap cfgs forward 2024-02-08 07:44:34 -05:00
cell Add some optimizations 2023-10-13 14:54:33 +02:00
char Auto merge of #122616 - Jules-Bertholet:casemappingiter-layout, r=Nilstrieb 2024-03-29 07:02:56 +00:00
cmp Use generic NonZero everywhere in core. 2024-02-22 15:17:33 +01:00
convert Import the 2021 prelude in the core crate 2024-03-25 13:12:06 -07:00
ffi step cfgs 2024-03-20 08:49:13 -04:00
fmt rename expose_addr to expose_provenance 2024-04-03 16:00:38 +02:00
future Use root obligation on E0277 for some cases 2024-03-03 18:53:35 +00:00
hash Add fn const BuildHasherDefault::new 2024-03-29 17:10:17 +01:00
intrinsics rename expose_addr to expose_provenance 2024-04-03 16:00:38 +02:00
io BorrowedCursor docs clarification 2024-03-10 09:48:56 +01:00
iter Import the 2021 prelude in the core crate 2024-03-25 13:12:06 -07:00
macros Fix error message for env! when env var is not valid Unicode 2024-04-01 05:44:45 +01:00
mem Auto merge of #122582 - scottmcm:swap-intrinsic-v2, r=oli-obk 2024-03-23 13:57:55 +00:00
net Import the 2021 prelude in the core crate 2024-03-25 13:12:06 -07:00
num Rollup merge of #123226 - scottmcm:u32-shifts, r=WaffleLapkin 2024-04-02 21:22:01 +02:00
ops Extract helper, fix comment on DerefPure 2024-03-25 19:39:45 -04:00
panic add panic location to 'panicked while processing panic' 2024-03-23 09:44:04 +01:00
prelude Remove RustcEncodable/Decodable from 2024 prelude 2024-03-22 13:30:48 -07:00
ptr rename expose_addr to expose_provenance 2024-04-03 16:00:38 +02:00
slice Auto merge of #122945 - andy-k:sorted-vec-example, r=jhpratt 2024-04-02 03:14:05 +00:00
str move assert_unsafe_preconditions to its own file 2024-03-23 18:44:17 +01:00
sync stabilize ptr.is_aligned, move ptr.is_aligned_to to a new feature gate 2024-03-29 19:59:46 -04:00
task set tracking issue 2024-04-02 15:45:53 -07:00
unicode Bump Unicode printables to version 15.1, align to unicode_data 2024-03-28 11:21:52 +01:00
any.rs Improve wording in std::any explanation 2024-03-29 10:10:52 -07:00
arch.rs Rust is a proper name: rust → Rust 2024-03-07 07:49:22 +01:00
ascii.rs Use generic NonZero internally. 2024-02-15 08:09:42 +01:00
asserting.rs [RFC 2011] Library code 2022-05-22 07:18:32 -03:00
bool.rs core is now compilable 2023-04-16 07:20:26 +00:00
borrow.rs doc: replace wrong punctuation mark 2023-07-28 14:46:17 +02:00
cell.rs Explain why we don't use intrinsics::is_nonoverlapping 2024-03-09 13:36:36 -05:00
clone.rs Put basic impls for f16 and f128 behind cfg(not(bootstrap)) 2024-04-02 16:19:55 -04:00
cmp.rs Auto merge of #123390 - tgross35:f16-f128-libs-basic-impls-bootstrap, r=jhpratt 2024-04-03 12:32:34 +00:00
default.rs Add basic trait impls for f16 and f128 2024-03-28 15:02:51 -04:00
error.md Fix minor grammar typo 2023-09-06 09:47:22 -07:00
error.rs style library/core/src/error.rs 2024-03-02 16:03:23 +08:00
escape.rs Use generic NonZero internally. 2024-02-15 08:09:42 +01:00
hint.rs move assert_unsafe_preconditions to its own file 2024-03-23 18:44:17 +01:00
internal_macros.rs add track_caller for arith ops 2023-11-24 00:54:06 +08:00
intrinsics.rs Auto merge of #123385 - matthiaskrgr:rollup-v69vjbn, r=matthiaskrgr 2024-04-02 21:23:53 +00:00
lib.rs Put basic impls for f16 and f128 behind cfg(not(bootstrap)) 2024-04-02 16:19:55 -04:00
marker.rs Put basic impls for f16 and f128 behind cfg(not(bootstrap)) 2024-04-02 16:19:55 -04:00
option.rs Import the 2021 prelude in the core crate 2024-03-25 13:12:06 -07:00
panic.rs Distinguish between library and lang UB in assert_unsafe_precondition 2024-03-08 18:53:58 -05:00
panicking.rs core/panicking: fix outdated comment 2024-03-23 21:36:22 +01:00
pin.rs chore: fix some comments 2024-03-27 22:32:53 +08:00
primitive.rs
primitive_docs.rs Use generic NonZero everywhere in core. 2024-02-22 15:17:33 +01:00
result.rs Import the 2021 prelude in the core crate 2024-03-25 13:12:06 -07:00
time.rs Implement Duration::as_millis_{f64,f32} 2024-03-14 01:37:12 +03:00
tuple.rs Rollup merge of #118307 - scottmcm:tuple-eq-simpler, r=joshtriplett 2024-02-11 08:25:41 +01:00
ub_checks.rs refactor check_{lang,library}_ub: use a single intrinsic, put policy into library 2024-03-23 18:45:05 +01:00
unit.rs Import the 2021 prelude in the core crate 2024-03-25 13:12:06 -07:00