-
Notifications
You must be signed in to change notification settings - Fork 13.8k
Commit b22559f
Rollup merge of #103346 - HeroicKatora:metadata_of_const_pointer_argument, r=dtolnay
Adjust argument type for mutable with_metadata_of (#75091)
The method takes two pointer arguments: one `self` supplying the pointer value, and a second pointer supplying the metadata.
The new parameter type more clearly reflects the actual requirements. The provenance of the metadata parameter is disregarded completely. Using a mutable pointer in the call site can be coerced to a const pointer while the reverse is not true.
In some cases, the current parameter type can thus lead to a very slightly confusing additional cast. [Example](197g/static-alloc@cad9377).
```rust
// Manually taking an unsized object from a `ManuallyDrop` into another allocation.
let val: &core::mem::ManuallyDrop<T> = ...;
let ptr = val as *const _ as *mut T;
let ptr = uninit.as_ptr().with_metadata_of(ptr);
```
This could then instead be simplified to:
```rust
// Manually taking an unsized object from a `ManuallyDrop` into another allocation.
let val: &core::mem::ManuallyDrop<T> = ...;
let ptr = uninit.as_ptr().with_metadata_of(&**val);
```
Tracking issue: #75091
``@dtolnay`` you're reviewed #95249, would you mind chiming in?3 files changed
+7
-3
lines changedOriginal file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1386 | 1386 |
| |
1387 | 1387 |
| |
1388 | 1388 |
| |
1389 | - | ||
1389 | + | ||
1390 | 1390 |
| |
1391 | 1391 |
| |
1392 | 1392 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1204 | 1204 |
| |
1205 | 1205 |
| |
1206 | 1206 |
| |
1207 | - | ||
1207 | + | ||
1208 | 1208 |
| |
1209 | 1209 |
| |
1210 | 1210 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
80 | 80 |
| |
81 | 81 |
| |
82 | 82 |
| |
83 | - | ||
83 | + | ||
84 | 84 |
| |
85 | 85 |
| |
86 | 86 |
| |
87 | + | ||
88 | + | ||
89 | + | ||
90 | + | ||
87 | 91 |
| |
88 | 92 |
| |
89 | 93 |
| |
|
0 commit comments