about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarcin Serwin <toxyxer@gmail.com>2020-03-20 10:40:44 +0100
committerMarcin Serwin <toxyxer@gmail.com>2020-04-09 08:05:51 +0200
commitbcbb9d9acb43f5b3f1ffe665f9c66d9931e1cc01 (patch)
tree24ea7d1eef51743927499b5214a62b9d2094f9d4
parent621767136eae13b2d9ebd462d3b33d6f1ad6b4e9 (diff)
downloadrust-bcbb9d9acb43f5b3f1ffe665f9c66d9931e1cc01.tar.gz
rust-bcbb9d9acb43f5b3f1ffe665f9c66d9931e1cc01.zip
Allow for const arrays of zeros
-rw-r--r--clippy_lints/src/misc.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/clippy_lints/src/misc.rs b/clippy_lints/src/misc.rs
index d4a74a6b451..50d0830757d 100644
--- a/clippy_lints/src/misc.rs
+++ b/clippy_lints/src/misc.rs
@@ -475,6 +475,11 @@ fn is_allowed<'a, 'tcx>(cx: &LateContext<'a, 'tcx>, expr: &'tcx Expr<'_>) -> boo
     match constant(cx, cx.tables, expr) {
         Some((Constant::F32(f), _)) => f == 0.0 || f.is_infinite(),
         Some((Constant::F64(f), _)) => f == 0.0 || f.is_infinite(),
+        Some((Constant::Vec(vec), _)) => vec.iter().all(|f| match f {
+            Constant::F32(f) => *f == 0.0 || (*f).is_infinite(),
+            Constant::F64(f) => *f == 0.0 || (*f).is_infinite(),
+            _ => false,
+        }),
         _ => false,
     }
 }