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));