]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/block_in_if_condition.rs
Auto merge of #4478 - tsurai:master, r=flip1995
[rust.git] / tests / ui / block_in_if_condition.rs
index 648327717155b6fc51e4a328e6bcb08077aa27d1..50f238814a31e4f366b127feb5c40c107131484d 100644 (file)
@@ -1,29 +1,25 @@
-#![feature(plugin)]
-#![plugin(clippy)]
-
-#![deny(block_in_if_condition_expr)]
-#![deny(block_in_if_condition_stmt)]
-#![allow(unused, let_and_return)]
-#![warn(nonminimal_bool)]
-
+#![warn(clippy::block_in_if_condition_expr)]
+#![warn(clippy::block_in_if_condition_stmt)]
+#![allow(unused, clippy::let_and_return)]
+#![warn(clippy::nonminimal_bool)]
 
 macro_rules! blocky {
-    () => {{true}}
+    () => {{
+        true
+    }};
 }
 
 macro_rules! blocky_too {
     () => {{
         let r = true;
         r
-    }}
+    }};
 }
 
 fn macro_if() {
-    if blocky!() {
-    }
+    if blocky!() {}
 
-    if blocky_too!() {
-    }
+    if blocky_too!() {}
 }
 
 fn condition_has_block() -> i32 {
@@ -45,21 +41,35 @@ fn condition_has_block_with_single_expression() -> i32 {
     }
 }
 
-fn predicate<F: FnOnce(T) -> bool, T>(pfn: F, val:T) -> bool {
+fn predicate<F: FnOnce(T) -> bool, T>(pfn: F, val: T) -> bool {
     pfn(val)
 }
 
 fn pred_test() {
     let v = 3;
     let sky = "blue";
-    // this is a sneaky case, where the block isn't directly in the condition, but is actually
-    // inside a closure that the condition is using.  same principle applies.  add some extra
-    // expressions to make sure linter isn't confused by them.
-    if v == 3 && sky == "blue" && predicate(|x| { let target = 3; x == target }, v) {
-    }
-
-    if predicate(|x| { let target = 3; x == target }, v) {
-    }
+    // This is a sneaky case, where the block isn't directly in the condition,
+    // but is actually nside a closure that the condition is using.
+    // The same principle applies -- add some extra expressions to make sure
+    // linter isn't confused by them.
+    if v == 3
+        && sky == "blue"
+        && predicate(
+            |x| {
+                let target = 3;
+                x == target
+            },
+            v,
+        )
+    {}
+
+    if predicate(
+        |x| {
+            let target = 3;
+            x == target
+        },
+        v,
+    ) {}
 }
 
 fn condition_is_normal() -> i32 {
@@ -72,9 +82,7 @@ fn condition_is_normal() -> i32 {
 }
 
 fn closure_without_block() {
-    if predicate(|x| x == 3, 6) {
-
-    }
+    if predicate(|x| x == 3, 6) {}
 }
 
 fn condition_is_unsafe_block() {
@@ -86,5 +94,24 @@ fn condition_is_unsafe_block() {
     }
 }
 
-fn main() {
+fn main() {}
+
+fn macro_in_closure() {
+    let option = Some(true);
+
+    if option.unwrap_or_else(|| unimplemented!()) {
+        unimplemented!()
+    }
+}
+
+fn block_in_assert() {
+    let opt = Some(42);
+    assert!(opt
+        .as_ref()
+        .and_then(|val| {
+            let mut v = val * 2;
+            v -= 1;
+            Some(v * 3)
+        })
+        .is_some());
 }