From c4dead34522bc2d0036a9897cb039a0a8d4eed11 Mon Sep 17 00:00:00 2001 From: David Rheinsberg Date: Fri, 24 Apr 2026 15:14:06 +0200 Subject: [PATCH 1/4] osi/mem: elide lifetimes Drop prototype lifetimes if they can be safely elided. Clippy will warn about this. Signed-off-by: David Rheinsberg --- lib/osi/src/mem.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/osi/src/mem.rs b/lib/osi/src/mem.rs index 55a46d3..4272920 100644 --- a/lib/osi/src/mem.rs +++ b/lib/osi/src/mem.rs @@ -165,7 +165,7 @@ pub const unsafe fn bswap_copy(v: &T) -> T { /// Any type can be aliased as a possibly uninitialized type. This is usually /// only necessary when providing initialized data to code that can handle /// possibly uninitialized data. -pub const fn as_uninit<'a, T>(v: &'a T) -> &'a Uninit { +pub const fn as_uninit(v: &T) -> &Uninit { unsafe { core::mem::transmute::<&T, &Uninit>(v) } @@ -174,7 +174,7 @@ pub const fn as_uninit<'a, T>(v: &'a T) -> &'a Uninit { /// Alias a slice as a [`MaybeUninit`](core::mem::MaybeUninit). /// /// This works like [`as_uninit()`] but for slices of `T`. -pub const fn slice_as_uninit<'a, T>(v: &'a [T]) -> &'a [Uninit] { +pub const fn slice_as_uninit(v: &[T]) -> &[Uninit] { unsafe { core::mem::transmute::<&[T], &[Uninit]>(v) } @@ -187,7 +187,7 @@ pub const fn slice_as_uninit<'a, T>(v: &'a [T]) -> &'a [Uninit] { /// It is up to the caller to guarantee that the [`MaybeUninit`] really is /// in an initialized state. Calling this when the content is not yet fully /// initialized causes immediate undefined behavior. -pub const unsafe fn assume_init<'a, T>(v: &'a Uninit) -> &'a T { +pub const unsafe fn assume_init(v: &Uninit) -> &T { unsafe { core::mem::transmute::<&Uninit, &T>(v) } @@ -201,7 +201,7 @@ pub const unsafe fn assume_init<'a, T>(v: &'a Uninit) -> &'a T { /// It is up to the caller to guarantee that the [`MaybeUninit`] really is /// in an initialized state. Calling this when the content is not yet fully /// initialized causes immediate undefined behavior. -pub const unsafe fn assume_init_mut<'a, T>(v: &'a mut Uninit) -> &'a mut T { +pub const unsafe fn assume_init_mut(v: &mut Uninit) -> &mut T { unsafe { core::mem::transmute::<&mut Uninit, &mut T>(v) } @@ -214,7 +214,7 @@ pub const unsafe fn assume_init_mut<'a, T>(v: &'a mut Uninit) -> &'a mut T { /// It is up to the caller to guarantee that the [`MaybeUninit`] really is /// in an initialized state. Calling this when the content is not yet fully /// initialized causes immediate undefined behavior. -pub const unsafe fn slice_assume_init<'a, T>(v: &'a [Uninit]) -> &'a [T] { +pub const unsafe fn slice_assume_init(v: &[Uninit]) -> &[T] { unsafe { core::mem::transmute::<&[Uninit], &[T]>(v) } @@ -228,7 +228,7 @@ pub const unsafe fn slice_assume_init<'a, T>(v: &'a [Uninit]) -> &'a [T] { /// It is up to the caller to guarantee that the [`MaybeUninit`] really is /// in an initialized state. Calling this when the content is not yet fully /// initialized causes immediate undefined behavior. -pub const unsafe fn slice_assume_init_mut<'a, T>(v: &'a mut [Uninit]) -> &'a mut [T] { +pub const unsafe fn slice_assume_init_mut(v: &mut [Uninit]) -> &mut [T] { unsafe { core::mem::transmute::<&mut [Uninit], &mut [T]>(v) } From 0f0634be79b89a34aa03aec108ca2e16a1a55667 Mon Sep 17 00:00:00 2001 From: David Rheinsberg Date: Fri, 24 Apr 2026 15:15:01 +0200 Subject: [PATCH 2/4] osi/polonius: elide lifetime Drop the 'a lifetime of get(), given that it is automatically inferred. Signed-off-by: David Rheinsberg --- lib/osi/src/polonius.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/osi/src/polonius.rs b/lib/osi/src/polonius.rs index aa9735a..4c2a305 100644 --- a/lib/osi/src/polonius.rs +++ b/lib/osi/src/polonius.rs @@ -71,7 +71,7 @@ mod test { // the function returned a value that is not dependent on the lifetime. #[test] fn coerce_loop_return() { - fn get<'a>(v: &'a mut (u16,)) -> Option<&'a u16> { + fn get(v: &mut (u16,)) -> Option<&u16> { if v.0 == 0 { Some(&v.0) } else { From 2da6abac7ee0b8b4dacd0810514cf186f152bee6 Mon Sep 17 00:00:00 2001 From: David Rheinsberg Date: Fri, 24 Apr 2026 15:15:32 +0200 Subject: [PATCH 3/4] osi/test: disable mod-inception warning Allow for "mod test" inside of "mod test", given that we use this style for all unit tests. Signed-off-by: David Rheinsberg --- lib/osi/src/test.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/osi/src/test.rs b/lib/osi/src/test.rs index cc33d5c..ec420b9 100644 --- a/lib/osi/src/test.rs +++ b/lib/osi/src/test.rs @@ -126,6 +126,7 @@ impl core::default::Default for InvariantType { } } +#[allow(clippy::module_inception)] #[cfg(test)] mod test { use super::*; From 8e68076d1c688dc030c98c06f6621d07c75d4659 Mon Sep 17 00:00:00 2001 From: David Rheinsberg Date: Fri, 24 Apr 2026 15:16:21 +0200 Subject: [PATCH 4/4] ci: put clippy into strict mode Ensure that clippy runs in strict mode, denying any warnings and ensuring that we catch those in CI. Signed-off-by: David Rheinsberg --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eaf04b8..b44b31a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -76,7 +76,7 @@ jobs: run: cargo check ${CI_CARGO_ARGS} - name: "Run Clippy" - run: cargo clippy ${CI_CARGO_ARGS} + run: cargo clippy ${CI_CARGO_ARGS} -- --deny=warnings # # A complete but basic build of the project, running on common x86-64 ubuntu