1
Fork 0
rust/compiler
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
..
rustc
rustc_abi Use the Align type when parsing alignment attributes 2024-04-01 03:05:55 +01:00
rustc_arena
rustc_ast rustc_ast: Update P<T> docs to reflect mutable status. 2024-04-03 08:41:03 +00:00
rustc_ast_ir Fix typo in VisitorResult 2024-03-08 23:20:29 -05:00
rustc_ast_lowering Implement mut ref/mut ref mut 2024-03-27 09:53:23 -04:00
rustc_ast_passes Rollup merge of #123188 - klensy:clippy-me2, r=Nilstrieb 2024-03-29 15:17:11 +01:00
rustc_ast_pretty Auto merge of #123080 - Jules-Bertholet:mut-ref-mut, r=Nadrieril 2024-03-29 11:08:11 +00:00
rustc_attr Use the Align type when parsing alignment attributes 2024-04-01 03:05:55 +01:00
rustc_baked_icu_data
rustc_borrowck rename expose_addr to expose_provenance 2024-04-03 16:00:38 +02:00
rustc_builtin_macros Fix error message for env! when env var is not valid Unicode 2024-04-01 05:44:45 +01:00
rustc_codegen_cranelift rename expose_addr to expose_provenance 2024-04-03 16:00:38 +02:00
rustc_codegen_gcc Auto merge of #118310 - scottmcm:three-way-compare, r=davidtwco 2024-04-02 19:21:44 +00:00
rustc_codegen_llvm Rollup merge of #122964 - joboet:pointer_expose, r=Amanieu 2024-04-03 22:11:00 +02:00
rustc_codegen_ssa Rollup merge of #122964 - joboet:pointer_expose, r=Amanieu 2024-04-03 22:11:00 +02:00
rustc_const_eval rename expose_addr to expose_provenance 2024-04-03 16:00:38 +02:00
rustc_data_structures Auto merge of #121851 - michaelwoerister:mcp-533-effective-vis, r=cjgillot 2024-03-31 16:22:38 +00:00
rustc_driver
rustc_driver_impl Auto merge of #111769 - saethlin:ctfe-backtrace-ctrlc, r=RalfJung 2024-03-26 00:04:03 +00:00
rustc_error_codes Auto merge of #122055 - compiler-errors:stabilize-atb, r=oli-obk 2024-03-19 00:04:09 +00:00
rustc_error_messages Rename SubdiagnosticMessage as SubdiagMessage. 2024-03-05 12:14:49 +11:00
rustc_errors Rollup merge of #121595 - strottos:issue_116615, r=compiler-errors 2024-04-03 22:10:59 +02:00
rustc_expand Rollup merge of #123182 - jhpratt:fix-decodable-derive, r=davidtwco 2024-04-02 20:37:40 -04:00
rustc_feature Auto merge of #123080 - Jules-Bertholet:mut-ref-mut, r=Nadrieril 2024-03-29 11:08:11 +00:00
rustc_fluent_macro Rename SubdiagnosticMessage as SubdiagMessage. 2024-03-05 12:14:49 +11:00
rustc_fs_util
rustc_graphviz
rustc_hir Auto merge of #118310 - scottmcm:three-way-compare, r=davidtwco 2024-04-02 19:21:44 +00:00
rustc_hir_analysis Rollup merge of #122964 - joboet:pointer_expose, r=Amanieu 2024-04-03 22:11:00 +02:00
rustc_hir_pretty Implement mut ref/mut ref mut 2024-03-27 09:53:23 -04:00
rustc_hir_typeck Rollup merge of #122964 - joboet:pointer_expose, r=Amanieu 2024-04-03 22:11:00 +02:00
rustc_incremental Auto merge of #122721 - oli-obk:merge_queries, r=davidtwco 2024-03-25 01:33:46 +00:00
rustc_index doc: Add better explanation 2024-03-06 16:54:42 +01:00
rustc_index_macros Remove SpecOptionPartialEq 2024-03-19 16:32:01 +00:00
rustc_infer Rollup merge of #123188 - klensy:clippy-me2, r=Nilstrieb 2024-03-29 15:17:11 +01:00
rustc_interface Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
rustc_lexer Silence redundant error on char literal that was meant to be a string in 2021 edition 2024-03-17 23:35:19 +00:00
rustc_lint Add support for NonNull in ambiguous_wide_ptr_comparisions 2024-03-29 22:02:07 +01:00
rustc_lint_defs rename expose_addr to expose_provenance 2024-04-03 16:00:38 +02:00
rustc_llvm Fix build on AIX 2024-04-02 17:25:22 +08:00
rustc_log bump tracing-tree to 0.3 2024-03-30 17:39:43 +03:00
rustc_macros Rename diagnostic derive things. 2024-03-11 10:06:34 +11:00
rustc_metadata Replace RemapFileNameExt::for_codegen with explicit calls 2024-03-28 18:47:26 +01:00
rustc_middle Rollup merge of #122964 - joboet:pointer_expose, r=Amanieu 2024-04-03 22:11:00 +02:00
rustc_mir_build Rollup merge of #123394 - compiler-errors:postfix-match-fixes, r=estebank 2024-04-03 17:15:50 +02:00
rustc_mir_dataflow refactor check_{lang,library}_ub: use a single intrinsic, put policy into library 2024-03-23 18:45:05 +01:00
rustc_mir_transform rename expose_addr to expose_provenance 2024-04-03 16:00:38 +02:00
rustc_monomorphize Only allow upstream calls to LLVM intrinsics, not any link_name function 2024-04-01 20:31:19 -04:00
rustc_next_trait_solver Require foldability part of interner item bounds, remove redundant where clauses 2024-03-28 12:30:52 -04:00
rustc_parse Don't ICE for postfix match after as 2024-04-02 18:31:42 -04:00
rustc_parse_format Extend format arg help for simple tuple index access expression 2024-03-16 22:33:02 +00:00
rustc_passes Auto merge of #122450 - Urgau:simplify-trim-paths-feature, r=michaelwoerister 2024-03-29 14:00:21 +00:00
rustc_pattern_analysis Rollup merge of #123242 - Nadrieril:require-contiguous-enum-indices, r=compiler-errors 2024-03-31 11:50:41 +02:00
rustc_privacy Rename hir::Local into hir::LetStmt 2024-03-22 20:36:21 +01:00
rustc_query_impl Verify that query keys result in unique dep nodes 2024-03-12 05:31:41 +01:00
rustc_query_system Remove CacheSelector trait now that we can use GATs 2024-03-26 11:03:23 +00:00
rustc_resolve remove def_id_to_node_id in ast lowering 2024-03-28 16:58:03 +08:00
rustc_serialize Stabilize associated type bounds 2024-03-08 20:56:25 +00:00
rustc_session Remove MIR unsafe check 2024-04-03 08:50:12 +00:00
rustc_smir rename expose_addr to expose_provenance 2024-04-03 16:00:38 +02:00
rustc_span rename expose_addr to expose_provenance 2024-04-03 16:00:38 +02:00
rustc_symbol_mangling CFI: Support non-general coroutines 2024-04-02 17:34:42 +00:00
rustc_target Rollup merge of #122619 - erikdesjardins:cast, r=compiler-errors 2024-04-03 22:11:00 +02:00
rustc_trait_selection Auto merge of #123396 - jhpratt:rollup-oa54mh1, r=jhpratt 2024-04-03 02:13:07 +00:00
rustc_traits Merge check_mod_impl_wf and check_mod_type_wf 2024-03-07 06:27:09 +00:00
rustc_transmute Remove unnecessary Partial/Ord derive 2024-03-27 14:02:15 +00:00
rustc_ty_utils Auto merge of #118310 - scottmcm:three-way-compare, r=davidtwco 2024-04-02 19:21:44 +00:00
rustc_type_ir Require foldability part of interner item bounds, remove redundant where clauses 2024-03-28 12:30:52 -04:00
stable_mir rename expose_addr to expose_provenance 2024-04-03 16:00:38 +02:00