From c869b6013dc98b0da5779f58b4b747a0e5b4bb3e 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 2c7aad6dea..0fe2c2ab85 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -181,6 +181,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, @@ -219,6 +220,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)] @@ -1510,6 +1512,7 @@ pub unsafe trait FromZeroes { /// * Panics if allocation of `size_of::() * 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 @@ -2960,10 +2963,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(()) } } @@ -4161,6 +4161,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::())