[`many_single_char_names`]: Deduplicate diagnostics
diff --git a/clippy_lints/src/non_expressive_names.rs b/clippy_lints/src/non_expressive_names.rs
index 7b26235..eacfe9f 100644
--- a/clippy_lints/src/non_expressive_names.rs
+++ b/clippy_lints/src/non_expressive_names.rs
@@ -98,6 +98,10 @@
impl<'a, 'tcx> SimilarNamesLocalVisitor<'a, 'tcx> {
fn check_single_char_names(&self) {
+ if self.single_char_names.last().map(Vec::len) == Some(0) {
+ return;
+ }
+
let num_single_char_names = self.single_char_names.iter().flatten().count();
let threshold = self.lint.single_char_binding_names_threshold;
if num_single_char_names as u64 > threshold {
diff --git a/tests/ui/many_single_char_names.rs b/tests/ui/many_single_char_names.rs
index 2af45ea..6857834 100644
--- a/tests/ui/many_single_char_names.rs
+++ b/tests/ui/many_single_char_names.rs
@@ -1,5 +1,3 @@
-//@compile-flags: -Zdeduplicate-diagnostics=yes
-
#![allow(clippy::too_many_arguments, clippy::diverging_sub_expression)]
#![warn(clippy::many_single_char_names)]
diff --git a/tests/ui/many_single_char_names.stderr b/tests/ui/many_single_char_names.stderr
index 3b2460b..131836e 100644
--- a/tests/ui/many_single_char_names.stderr
+++ b/tests/ui/many_single_char_names.stderr
@@ -1,5 +1,5 @@
error: 5 bindings with single-character names in scope
- --> tests/ui/many_single_char_names.rs:7:9
+ --> tests/ui/many_single_char_names.rs:5:9
|
LL | let a: i32;
| ^
@@ -14,7 +14,7 @@
= help: to override `-D warnings` add `#[allow(clippy::many_single_char_names)]`
error: 6 bindings with single-character names in scope
- --> tests/ui/many_single_char_names.rs:7:9
+ --> tests/ui/many_single_char_names.rs:5:9
|
LL | let a: i32;
| ^
@@ -28,7 +28,7 @@
| ^
error: 5 bindings with single-character names in scope
- --> tests/ui/many_single_char_names.rs:7:9
+ --> tests/ui/many_single_char_names.rs:5:9
|
LL | let a: i32;
| ^
@@ -40,13 +40,13 @@
| ^
error: 8 bindings with single-character names in scope
- --> tests/ui/many_single_char_names.rs:36:13
+ --> tests/ui/many_single_char_names.rs:34:13
|
LL | fn bindings(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32, g: i32, h: i32) {}
| ^ ^ ^ ^ ^ ^ ^ ^
error: 8 bindings with single-character names in scope
- --> tests/ui/many_single_char_names.rs:40:10
+ --> tests/ui/many_single_char_names.rs:38:10
|
LL | let (a, b, c, d, e, f, g, h): (bool, bool, bool, bool, bool, bool, bool, bool) = unimplemented!();
| ^ ^ ^ ^ ^ ^ ^ ^