summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/redundant_guards.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clippy/tests/ui/redundant_guards.rs')
-rw-r--r--src/tools/clippy/tests/ui/redundant_guards.rs57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui/redundant_guards.rs b/src/tools/clippy/tests/ui/redundant_guards.rs
index b46f8a620..5d476f5b0 100644
--- a/src/tools/clippy/tests/ui/redundant_guards.rs
+++ b/src/tools/clippy/tests/ui/redundant_guards.rs
@@ -193,3 +193,60 @@ mod issue11465 {
}
}
}
+
+fn issue11807() {
+ #![allow(clippy::single_match)]
+
+ match Some(Some("")) {
+ Some(Some(x)) if x.is_empty() => {},
+ _ => {},
+ }
+
+ match Some(Some(String::new())) {
+ // Do not lint: String deref-coerces to &str
+ Some(Some(x)) if x.is_empty() => {},
+ _ => {},
+ }
+
+ match Some(Some(&[] as &[i32])) {
+ Some(Some(x)) if x.is_empty() => {},
+ _ => {},
+ }
+
+ match Some(Some([] as [i32; 0])) {
+ Some(Some(x)) if x.is_empty() => {},
+ _ => {},
+ }
+
+ match Some(Some(Vec::<()>::new())) {
+ // Do not lint: Vec deref-coerces to &[T]
+ Some(Some(x)) if x.is_empty() => {},
+ _ => {},
+ }
+
+ match Some(Some(&[] as &[i32])) {
+ Some(Some(x)) if x.starts_with(&[]) => {},
+ _ => {},
+ }
+
+ match Some(Some(&[] as &[i32])) {
+ Some(Some(x)) if x.starts_with(&[1]) => {},
+ _ => {},
+ }
+
+ match Some(Some(&[] as &[i32])) {
+ Some(Some(x)) if x.starts_with(&[1, 2]) => {},
+ _ => {},
+ }
+
+ match Some(Some(&[] as &[i32])) {
+ Some(Some(x)) if x.ends_with(&[1, 2]) => {},
+ _ => {},
+ }
+
+ match Some(Some(Vec::<i32>::new())) {
+ // Do not lint: deref coercion
+ Some(Some(x)) if x.starts_with(&[1, 2]) => {},
+ _ => {},
+ }
+}