Skip to content

Commit 519694a

Browse files
authored
Rollup merge of rust-lang#114784 - Urgau:many-improve-invalid_reference_casting-lint, r=est31
Improve `invalid_reference_casting` lint This PR improves the `invalid_reference_casting` lint: - by considering an unlimited number of casts instead only const to mut ptr - by also considering ptr-to-integer and integer-to-ptr casts - by also taking into account [`ptr::cast`](https://doc.rust-lang.org/std/primitive.pointer.html#method.cast), [`ptr::cast`](https://doc.rust-lang.org/std/primitive.pointer.html#method.cast-1) and [`ptr::cast_const`](https://doc.rust-lang.org/std/primitive.pointer.html#method.cast_const) Most of this improvements comes from skimming Github Code Search result for [`&mut \*.*as \*const`](https://github.com/search?q=lang%3Arust+%2F%26mut+%5C*.*as+%5C*const%2F&type=code) r? ``@est31`` (maybe)
2 parents 2bbf402 + 35a3478 commit 519694a

File tree

2 files changed

+2
-0
lines changed

2 files changed

+2
-0
lines changed

core/src/ptr/const_ptr.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ impl<T: ?Sized> *const T {
5555
/// Casts to a pointer of another type.
5656
#[stable(feature = "ptr_cast", since = "1.38.0")]
5757
#[rustc_const_stable(feature = "const_ptr_cast", since = "1.38.0")]
58+
#[rustc_diagnostic_item = "const_ptr_cast"]
5859
#[inline(always)]
5960
pub const fn cast<U>(self) -> *const U {
6061
self as _

core/src/ptr/mut_ptr.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ impl<T: ?Sized> *mut T {
112112
/// [`cast_mut`]: #method.cast_mut
113113
#[stable(feature = "ptr_const_cast", since = "1.65.0")]
114114
#[rustc_const_stable(feature = "ptr_const_cast", since = "1.65.0")]
115+
#[rustc_diagnostic_item = "ptr_cast_const"]
115116
#[inline(always)]
116117
pub const fn cast_const(self) -> *const T {
117118
self as _

0 commit comments

Comments
 (0)