allow-unwrap-in-tests does not work in unit test that are also gated by a feature flag
@corentinguilloteau is already working on this.
Since May 2, 2026.
Assessment
This issue has not been assessed yet.
Description
Summary
I have a codebase where I want to prevent the use of unwrap outside of unit test.
For that I tried to use the lint clippy::unwrap_unsed with the configuration allow-unwrap-in-tests=true.
Some tests also depend on a feature flag being activated, i.e., #[cfg(all(test, feature = "my-feature"))]. For those there is a false positive for test helper functions.
Reproducer
Code:
#[cfg(all(test, feature = "my-feature"))]
mod tests {
fn helper() -> u32 {
Some(42).unwrap()
}
#[test]
fn test() {
let _ = helper();
let _ = Some(21).unwrap();
}
}
Cargo.toml:
[package]
name = "playground"
version = "0.1.0"
edition = "2024"
[features]
my-feature = []
[lints.clippy]
unwrap_used = "deny"
Current output:
Warning that unwrap() is used in helper()
Desired output:
No warning
Note that the current workaround is to add another cfg(test):
#[cfg(all(test, feature = "my-feature"))]
#[cfg(test)]
mod tests {
//..
}
Version
rustc 1.92.0 (ded5c06cf 2025-12-08)
binary: rustc
commit-hash: ded5c06cf21d2b93bffd5d884aa6e96934ee4234
commit-date: 2025-12-08
host: x86_64-unknown-linux-gnu
release: 1.92.0
LLVM version: 21.1.3
Additional Labels
No response
- Dominant language
- Rust
- Stars
- 13.5k
- Forks
- 2.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 32
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from rust-lang/rust-clippy
-
C-bug L-suggestion
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
rust-lang/rust-clippy#17674 · 5 comments ·
-
C-bug L-suggestion
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
rust-lang/rust-clippy#17673 · 3 comments ·
-
C-bug I-false-positive
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
rust-lang/rust-clippy#17566 ·
-
A-documentation
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
rust-lang/rust-clippy#17259 · 3 comments ·
-
A-documentation A-website C-bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
rust-lang/rust-clippy#16981 · 1 reaction ·
All issues in rust-lang/rust-clippy
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
enhancement remote
Difficulty 2/5 1-3 hours Newbie friendliness 68/100