rust-lang / rust-lang/rust-clippy
Suggest `ptr::null()` over `ptr::null_mut()` if the receiver takes `*const`
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 13.5k
- Forks
- 2.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 32
Description
I'm often passing null pointers for optional arguments when doing C FFI. Some functions take *mut as argument, others *const. Since mutable pointers coerce to const pointers, I can call a function taking a *const argument by accidentally passing in ptr::null_mut(), where the more correct usage would be to pass ptr::null().
Example:
use std::ptr;
fn foo(arg: *const u32) {}
fn main() {
foo(ptr::null_mut());
}
Here I would like Clippy to suggest calling foo with ptr::null() instead.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the Rust example with Clippy, then locate the lint implementation and its tests for pointer arguments. Done means Clippy detects ptr::null_mut() passed to a *const parameter and suggests ptr::null(), while leaving *mut parameters unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100