about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarcin Serwin <toxyxer@gmail.com>2020-03-20 11:25:39 +0100
committerMarcin Serwin <toxyxer@gmail.com>2020-04-09 08:07:18 +0200
commitd3167c63f84fcf34e81eb78c44c8f70ada07080b (patch)
tree3e55c8ac21fecf3a7fa4746dc64c834ba5ddaa19
parent1bab67c72b50c995c7b981fddff89e61c8a723af (diff)
downloadrust-d3167c63f84fcf34e81eb78c44c8f70ada07080b.tar.gz
rust-d3167c63f84fcf34e81eb78c44c8f70ada07080b.zip
Handle constant arrays with single value
-rw-r--r--clippy_lints/src/consts.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/clippy_lints/src/consts.rs b/clippy_lints/src/consts.rs
index c25200c3338..b9160712915 100644
--- a/clippy_lints/src/consts.rs
+++ b/clippy_lints/src/consts.rs
@@ -356,6 +356,17 @@ impl<'c, 'cc> ConstEvalLateContext<'c, 'cc> {
                 Constant::F64(x) => Some(Constant::F64(x)),
                 _ => None,
             },
+            (Some(Constant::Vec(vec)), _) => {
+                if !vec.is_empty() && vec.iter().all(|x| *x == vec[0]) {
+                    match vec[0] {
+                        Constant::F32(x) => Some(Constant::F32(x)),
+                        Constant::F64(x) => Some(Constant::F64(x)),
+                        _ => None,
+                    }
+                } else {
+                    None
+                }
+            },
             _ => None,
         }
     }