]> git.lizzy.rs Git - rust.git/commitdiff
Only build suggestion if necessary in `USELESS_VEC`
authormcarton <cartonmartin+git@gmail.com>
Thu, 30 Jun 2016 17:50:03 +0000 (19:50 +0200)
committermcarton <cartonmartin+git@gmail.com>
Fri, 1 Jul 2016 15:12:49 +0000 (17:12 +0200)
clippy_lints/src/vec.rs

index 8e09f9341c2dffb74b6523d0cc367a17e159a8c6..6f4c5a1e0e26ddb9e176ee1011c2f24d3f39c5f8 100644 (file)
@@ -51,26 +51,26 @@ fn check_expr(&mut self, cx: &LateContext, expr: &Expr) {
 
 fn check_vec_macro(cx: &LateContext, vec: &Expr, span: Span) {
     if let Some(vec_args) = higher::vec_macro(cx, vec) {
-        let snippet = match vec_args {
-            higher::VecArgs::Repeat(elem, len) => {
-                format!("&[{}; {}]", snippet(cx, elem.span, "elem"), snippet(cx, len.span, "len")).into()
-            }
-            higher::VecArgs::Vec(args) => {
-                if let Some(last) = args.iter().last() {
-                    let span = Span {
-                        lo: args[0].span.lo,
-                        hi: last.span.hi,
-                        expn_id: args[0].span.expn_id,
-                    };
+        span_lint_and_then(cx, USELESS_VEC, span, "useless use of `vec!`", |db| {
+            let snippet = match vec_args {
+                higher::VecArgs::Repeat(elem, len) => {
+                    format!("&[{}; {}]", snippet(cx, elem.span, "elem"), snippet(cx, len.span, "len")).into()
+                }
+                higher::VecArgs::Vec(args) => {
+                    if let Some(last) = args.iter().last() {
+                        let span = Span {
+                            lo: args[0].span.lo,
+                            hi: last.span.hi,
+                            expn_id: args[0].span.expn_id,
+                        };
 
-                    format!("&[{}]", snippet(cx, span, "..")).into()
-                } else {
-                    "&[]".into()
+                        format!("&[{}]", snippet(cx, span, "..")).into()
+                    } else {
+                        "&[]".into()
+                    }
                 }
-            }
-        };
+            };
 
-        span_lint_and_then(cx, USELESS_VEC, span, "useless use of `vec!`", |db| {
             db.span_suggestion(span, "you can use a slice directly", snippet);
         });
     }