From 3653aaa4f1648bace0ee1385d023ee391f97f608 Mon Sep 17 00:00:00 2001 From: Tony Arcieri Date: Fri, 3 Apr 2026 10:00:42 -0600 Subject: [PATCH] Eliminate `unreachable!()` in `check_slice_length()` --- src/lib.rs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 19dc332..249157d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1211,17 +1211,13 @@ where } /// Generate a [`TryFromSliceError`] if the slice doesn't match the given length. -#[cfg_attr(debug_assertions, allow(clippy::panic_in_result_fn))] fn check_slice_length(slice: &[T]) -> Result<(), TryFromSliceError> { debug_assert_eq!(Array::<(), U>::default().len(), U::USIZE); - if slice.len() != U::USIZE { - // Hack: `TryFromSliceError` lacks a public constructor - <&[T; 1]>::try_from([].as_slice())?; - - #[cfg(debug_assertions)] - unreachable!(); + if slice.len() == U::USIZE { + Ok(()) + } else { + // Hack: `TryFromSliceError` lacks a public constructor, so this fakes one + <&[T; 1]>::try_from([].as_slice()).map(|_| ()) } - - Ok(()) }