Skip to content

Commit

Permalink
Enable clippy::expect_used, address warnings
Browse files Browse the repository at this point in the history
This enables Clippy's
[`expect_used`](https://rust-lang.github.io/rust-clippy/master/index.html#/expect_used)
lint, which errors on calls to `Option::expect` and `Result::{expect,
expect_err}`. The intent of enabling this lint is to reduce the number
of panics emitted in `zerocopy`'s code (issue #202).
  • Loading branch information
jrvanwhy committed Dec 12, 2023
1 parent 52a6477 commit 41d6bc6
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@
clippy::correctness,
clippy::dbg_macro,
clippy::decimal_literal_representation,
clippy::expect_used,
clippy::get_unwrap,
clippy::indexing_slicing,
clippy::missing_inline_in_public_items,
Expand Down Expand Up @@ -225,6 +226,7 @@
// production code introduce the possibly of code panicking unexpectedly "in
// the field".
clippy::arithmetic_side_effects,
clippy::expect_used,
clippy::indexing_slicing,
))]
#![cfg_attr(not(test), no_std)]
Expand Down Expand Up @@ -1550,6 +1552,7 @@ pub unsafe trait FromZeros {
/// * Panics if allocation of `size_of::<Self>() * len` bytes fails.
#[cfg(feature = "alloc")]
#[cfg_attr(doc_cfg, doc(cfg(feature = "alloc")))]
#[allow(clippy::expect_used)]
#[inline]
fn new_box_slice_zeroed(len: usize) -> Box<[Self]>
where
Expand Down Expand Up @@ -2992,10 +2995,7 @@ pub unsafe trait AsBytes {
Self: NoCell,
{
let start = bytes.len().checked_sub(mem::size_of_val(self))?;
bytes
.get_mut(start..)
.expect("`start` should be in-bounds of `bytes`")
.copy_from_slice(self.as_bytes());
bytes.get_mut(start..)?.copy_from_slice(self.as_bytes());
Some(())
}
}
Expand Down Expand Up @@ -4350,6 +4350,7 @@ where
/// `new_slice` panics if `T` is a zero-sized type.
#[inline]
pub fn new_slice(bytes: B) -> Option<Ref<B, [T]>> {
#[allow(clippy::expect_used)]
let remainder = bytes
.len()
.checked_rem(mem::size_of::<T>())
Expand Down Expand Up @@ -4874,6 +4875,7 @@ where
// PANICS: By invariant, `self.0` satisfies `T`'s alignment and is a
// valid size for `T`, which ensures that `try_cast_into_no_leftover`
// will not panic.
#[allow(clippy::expect_used)]
Ptr::from(self.0)
.try_cast_into_no_leftover::<T>()
.expect("Ref::deref_unchecked: internal error (pointer cast should never fail)")
Expand Down

0 comments on commit 41d6bc6

Please sign in to comment.