mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-12-23 19:43:20 +00:00
30608732c2
This covers two cases: - `core::ptr::null::<T>().cast_mut()` -> `core::ptr::null_mut::<T>()` - `core::ptr::null_mut::<T>().cast_const()` -> `core::ptr::null::<T>()`
87 lines
4 KiB
Text
87 lines
4 KiB
Text
error: `as` casting between raw pointers while changing only its constness
|
|
--> tests/ui/ptr_cast_constness.rs:15:41
|
|
|
|
|
LL | let _: &mut T = std::mem::transmute(p as *mut T);
|
|
| ^^^^^^^^^^^ help: try `pointer::cast_mut`, a safer alternative: `p.cast_mut()`
|
|
|
|
|
= note: `-D clippy::ptr-cast-constness` implied by `-D warnings`
|
|
= help: to override `-D warnings` add `#[allow(clippy::ptr_cast_constness)]`
|
|
|
|
error: `as` casting between raw pointers while changing only its constness
|
|
--> tests/ui/ptr_cast_constness.rs:16:19
|
|
|
|
|
LL | let _ = &mut *(p as *mut T);
|
|
| ^^^^^^^^^^^^^ help: try `pointer::cast_mut`, a safer alternative: `p.cast_mut()`
|
|
|
|
error: `as` casting between raw pointers while changing only its constness
|
|
--> tests/ui/ptr_cast_constness.rs:31:17
|
|
|
|
|
LL | let _ = *ptr_ptr as *mut u32;
|
|
| ^^^^^^^^^^^^^^^^^^^^ help: try `pointer::cast_mut`, a safer alternative: `(*ptr_ptr).cast_mut()`
|
|
|
|
error: `as` casting between raw pointers while changing only its constness
|
|
--> tests/ui/ptr_cast_constness.rs:34:13
|
|
|
|
|
LL | let _ = ptr as *mut u32;
|
|
| ^^^^^^^^^^^^^^^ help: try `pointer::cast_mut`, a safer alternative: `ptr.cast_mut()`
|
|
|
|
error: `as` casting between raw pointers while changing only its constness
|
|
--> tests/ui/ptr_cast_constness.rs:35:13
|
|
|
|
|
LL | let _ = mut_ptr as *const u32;
|
|
| ^^^^^^^^^^^^^^^^^^^^^ help: try `pointer::cast_const`, a safer alternative: `mut_ptr.cast_const()`
|
|
|
|
error: `as` casting between raw pointers while changing only its constness
|
|
--> tests/ui/ptr_cast_constness.rs:68:13
|
|
|
|
|
LL | let _ = ptr as *mut u32;
|
|
| ^^^^^^^^^^^^^^^ help: try `pointer::cast_mut`, a safer alternative: `ptr.cast_mut()`
|
|
|
|
error: `as` casting between raw pointers while changing only its constness
|
|
--> tests/ui/ptr_cast_constness.rs:69:13
|
|
|
|
|
LL | let _ = mut_ptr as *const u32;
|
|
| ^^^^^^^^^^^^^^^^^^^^^ help: try `pointer::cast_const`, a safer alternative: `mut_ptr.cast_const()`
|
|
|
|
error: `as` casting to make a const null pointer into a mutable null pointer
|
|
--> tests/ui/ptr_cast_constness.rs:75:13
|
|
|
|
|
LL | let _ = ptr::null::<String>() as *mut String;
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `null_mut()` directly instead: `std::ptr::null_mut::<String>()`
|
|
|
|
error: `as` casting to make a mutable null pointer into a const null pointer
|
|
--> tests/ui/ptr_cast_constness.rs:76:13
|
|
|
|
|
LL | let _ = ptr::null_mut::<u32>() as *const u32;
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `null()` directly instead: `std::ptr::null::<u32>()`
|
|
|
|
error: changing constness of a null pointer
|
|
--> tests/ui/ptr_cast_constness.rs:77:13
|
|
|
|
|
LL | let _ = ptr::null::<u32>().cast_mut();
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `null_mut()` directly instead: `std::ptr::null_mut::<u32>()`
|
|
|
|
error: changing constness of a null pointer
|
|
--> tests/ui/ptr_cast_constness.rs:78:13
|
|
|
|
|
LL | let _ = ptr::null_mut::<u32>().cast_const();
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `null()` directly instead: `std::ptr::null::<u32>()`
|
|
|
|
error: `as` casting to make a const null pointer into a mutable null pointer
|
|
--> tests/ui/ptr_cast_constness.rs:81:21
|
|
|
|
|
LL | let _ = inline!(ptr::null::<u32>() as *mut u32);
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `null_mut()` directly instead: `std::ptr::null_mut::<u32>()`
|
|
|
|
|
= note: this error originates in the macro `__inline_mac_fn_null_pointers` (in Nightly builds, run with -Z macro-backtrace for more info)
|
|
|
|
error: changing constness of a null pointer
|
|
--> tests/ui/ptr_cast_constness.rs:82:21
|
|
|
|
|
LL | let _ = inline!(ptr::null::<u32>().cast_mut());
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `null_mut()` directly instead: `std::ptr::null_mut::<u32>()`
|
|
|
|
|
= note: this error originates in the macro `__inline_mac_fn_null_pointers` (in Nightly builds, run with -Z macro-backtrace for more info)
|
|
|
|
error: aborting due to 13 previous errors
|
|
|