From 2b6b0f1df6b195feb44a3aee329f26d2271ada81 Mon Sep 17 00:00:00 2001 From: Johnathan Van Why Date: Tue, 24 Oct 2023 14:06:37 -0700 Subject: [PATCH] Enable `clippy::expect_used`, address warnings 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). --- src/lib.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index ab81860bb4..fe000d2643 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -177,6 +177,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, @@ -215,6 +216,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)] @@ -1047,6 +1049,7 @@ pub unsafe trait FromZeroes { /// * Panics if `size_of::() * len` overflows. /// * Panics if allocation of `size_of::() * len` bytes fails. #[cfg(feature = "alloc")] + #[allow(clippy::expect_used)] #[inline] fn new_box_slice_zeroed(len: usize) -> Box<[Self]> where @@ -1436,10 +1439,7 @@ pub unsafe trait AsBytes { #[inline] fn write_to_suffix(&self, bytes: &mut [u8]) -> Option<()> { 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(()) } } @@ -2262,6 +2262,7 @@ where /// `new_slice` panics if `T` is a zero-sized type. #[inline] pub fn new_slice(bytes: B) -> Option> { + #[allow(clippy::expect_used)] let remainder = bytes .len() .checked_rem(mem::size_of::())