RS.CLIPPY.DEBUG_ASSERT_WITH_MUT_CALL
Mutable arguments in `debug_assert{,_ne,_eq}!`
This checker is a Clippy lint created by The Rust Project Contributors. The documentation shown here is a copy of the original documentation for: debug_assert_with_mut_call. Copyright ©2025 The Rust Team. All rights reserved.
What it does
Checks for function/method calls with a mutable
parameter in debug_assert!, debug_assert_eq! and debug_assert_ne! macros.
Why is this bad?
In release builds debug_assert! macros are optimized out by the
compiler.
Therefore mutating something in a debug_assert! macro results in different behavior
between a release and debug build.
Example
debug_assert_eq!(vec![3].pop(), Some(3));
// or
debug_assert!(takes_a_mut_parameter(&mut x));