e49cde7500
This PR updates the `from_raw_with_void_ptr` lint, which covered `Box::from_raw`, to also cover the `from_raw` static method of the `Rc`, `Arc`, `alloc::rc::Weak` and `alloc::sync::Weak` types. It also improves the description and error messages of this lint. --- changelog: [`from_raw_with_void_ptr`]: Now works with the `Rc`, `Arc`, `alloc::rc::Weak` and `alloc::sync::Weak` types.
64 lines
2.1 KiB
Plaintext
64 lines
2.1 KiB
Plaintext
error: creating a `Box` from a void raw pointer
|
|
--> $DIR/from_raw_with_void_ptr.rs:10:22
|
|
|
|
|
LL | let _ = unsafe { Box::from_raw(ptr) };
|
|
| ^^^^^^^^^^^^^^^^^^
|
|
|
|
|
help: cast this to a pointer of the appropriate type
|
|
--> $DIR/from_raw_with_void_ptr.rs:10:36
|
|
|
|
|
LL | let _ = unsafe { Box::from_raw(ptr) };
|
|
| ^^^
|
|
= note: `-D clippy::from-raw-with-void-ptr` implied by `-D warnings`
|
|
|
|
error: creating a `Rc` from a void raw pointer
|
|
--> $DIR/from_raw_with_void_ptr.rs:21:22
|
|
|
|
|
LL | let _ = unsafe { Rc::from_raw(ptr) };
|
|
| ^^^^^^^^^^^^^^^^^
|
|
|
|
|
help: cast this to a pointer of the appropriate type
|
|
--> $DIR/from_raw_with_void_ptr.rs:21:35
|
|
|
|
|
LL | let _ = unsafe { Rc::from_raw(ptr) };
|
|
| ^^^
|
|
|
|
error: creating a `Arc` from a void raw pointer
|
|
--> $DIR/from_raw_with_void_ptr.rs:25:22
|
|
|
|
|
LL | let _ = unsafe { Arc::from_raw(ptr) };
|
|
| ^^^^^^^^^^^^^^^^^^
|
|
|
|
|
help: cast this to a pointer of the appropriate type
|
|
--> $DIR/from_raw_with_void_ptr.rs:25:36
|
|
|
|
|
LL | let _ = unsafe { Arc::from_raw(ptr) };
|
|
| ^^^
|
|
|
|
error: creating a `Weak` from a void raw pointer
|
|
--> $DIR/from_raw_with_void_ptr.rs:29:22
|
|
|
|
|
LL | let _ = unsafe { std::rc::Weak::from_raw(ptr) };
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
help: cast this to a pointer of the appropriate type
|
|
--> $DIR/from_raw_with_void_ptr.rs:29:46
|
|
|
|
|
LL | let _ = unsafe { std::rc::Weak::from_raw(ptr) };
|
|
| ^^^
|
|
|
|
error: creating a `Weak` from a void raw pointer
|
|
--> $DIR/from_raw_with_void_ptr.rs:33:22
|
|
|
|
|
LL | let _ = unsafe { std::sync::Weak::from_raw(ptr) };
|
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
help: cast this to a pointer of the appropriate type
|
|
--> $DIR/from_raw_with_void_ptr.rs:33:48
|
|
|
|
|
LL | let _ = unsafe { std::sync::Weak::from_raw(ptr) };
|
|
| ^^^
|
|
|
|
error: aborting due to 5 previous errors
|
|
|