]> git.lizzy.rs Git - rust.git/blobdiff - tests/ui/implicit_return.rs
iterate List by value
[rust.git] / tests / ui / implicit_return.rs
index 3bff92cf492be6a6f34d16a264102f7be07aa8a9..c0d70ecf502ed6167fe7205866045f24d66c6ceb 100644 (file)
@@ -1,19 +1,14 @@
-// Copyright 2014-2018 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
+// run-rustfix
 
 #![warn(clippy::implicit_return)]
+#![allow(clippy::needless_return, unused)]
 
 fn test_end_of_fn() -> bool {
     if true {
         // no error!
         return true;
     }
+
     true
 }
 
@@ -26,11 +21,19 @@ fn test_if_block() -> bool {
     }
 }
 
-#[allow(clippy::match_bool)]
+#[rustfmt::skip]
 fn test_match(x: bool) -> bool {
     match x {
         true => false,
-        false => true,
+        false => { true },
+    }
+}
+
+#[allow(clippy::needless_return)]
+fn test_match_with_unreachable(x: bool) -> bool {
+    match x {
+        true => return false,
+        false => unreachable!(),
     }
 }
 
@@ -41,15 +44,58 @@ fn test_loop() -> bool {
     }
 }
 
+#[allow(clippy::never_loop)]
+fn test_loop_with_block() -> bool {
+    loop {
+        {
+            break true;
+        }
+    }
+}
+
+#[allow(clippy::never_loop)]
+fn test_loop_with_nests() -> bool {
+    loop {
+        if true {
+            break true;
+        } else {
+            let _ = true;
+        }
+    }
+}
+
+#[allow(clippy::redundant_pattern_matching)]
+fn test_loop_with_if_let() -> bool {
+    loop {
+        if let Some(x) = Some(true) {
+            return x;
+        }
+    }
+}
+
 fn test_closure() {
+    #[rustfmt::skip]
+    let _ = || { true };
     let _ = || true;
-    let _ = || true;
+}
+
+fn test_panic() -> bool {
+    panic!()
+}
+
+fn test_return_macro() -> String {
+    format!("test {}", "test")
 }
 
 fn main() {
     let _ = test_end_of_fn();
     let _ = test_if_block();
     let _ = test_match(true);
+    let _ = test_match_with_unreachable(true);
     let _ = test_loop();
+    let _ = test_loop_with_block();
+    let _ = test_loop_with_nests();
+    let _ = test_loop_with_if_let();
     test_closure();
+    let _ = test_return_macro();
 }