Add a special case for CStr/CString in the improper_ctypes lint by jieyouxu · Pull Request #128735 · rust-lang/rust (original) (raw)

Revives #120176. Just needed to bless a test and fix an argument, but seemed reasonable to me otherwise.

Instead of saying to "consider adding a #[repr(C)] or #[repr(transparent)] attribute to this struct", we now tell users to "Use *const ffi::c_char instead, and pass the value from CStr::as_ptr()" when the type involved is a CStr or a CString.

The suggestion is not made for &mut CString or *mut CString.

r? @cjgillot (since you were the reviewer of the original PR #120176, but feel free to reroll)