about summary refs log tree commit diff
diff options
context:
space:
mode:
authorThibsG <Thibs@debian.com>2021-01-18 22:33:25 +0100
committerThibsG <Thibs@debian.com>2021-01-18 22:33:25 +0100
commite33ab3fdd85e162909f884a2437cb42ce6e794cf (patch)
tree5e47faf51b3e7c807b1a9434609a3beb1e0e2cbe
parent91292f1eefdb59c49101af0f058661fbd4750e98 (diff)
downloadrust-e33ab3fdd85e162909f884a2437cb42ce6e794cf.tar.gz
rust-e33ab3fdd85e162909f884a2437cb42ce6e794cf.zip
Add test for `needless_return` lint
-rw-r--r--tests/ui/needless_return.fixed6
-rw-r--r--tests/ui/needless_return.rs6
-rw-r--r--tests/ui/needless_return.stderr8
3 files changed, 19 insertions, 1 deletions
diff --git a/tests/ui/needless_return.fixed b/tests/ui/needless_return.fixed
index f137e8ecae9..990475fcb58 100644
--- a/tests/ui/needless_return.fixed
+++ b/tests/ui/needless_return.fixed
@@ -112,6 +112,12 @@ mod issue6501 {
         };
         let _ = || {};
     }
+
+    struct Foo;
+    #[allow(clippy::unnecessary_lazy_evaluations)]
+    fn bar(res: Result<Foo, u8>) -> Foo {
+        res.unwrap_or_else(|_| Foo)
+    }
 }
 
 fn main() {
diff --git a/tests/ui/needless_return.rs b/tests/ui/needless_return.rs
index d754e4d37a8..dec3d84a020 100644
--- a/tests/ui/needless_return.rs
+++ b/tests/ui/needless_return.rs
@@ -112,6 +112,12 @@ mod issue6501 {
         };
         let _ = || return;
     }
+
+    struct Foo;
+    #[allow(clippy::unnecessary_lazy_evaluations)]
+    fn bar(res: Result<Foo, u8>) -> Foo {
+        res.unwrap_or_else(|_| return Foo)
+    }
 }
 
 fn main() {
diff --git a/tests/ui/needless_return.stderr b/tests/ui/needless_return.stderr
index d1240e161c0..ae31d607541 100644
--- a/tests/ui/needless_return.stderr
+++ b/tests/ui/needless_return.stderr
@@ -102,5 +102,11 @@ error: unneeded `return` statement
 LL |         let _ = || return;
    |                    ^^^^^^ help: replace `return` with an empty block: `{}`
 
-error: aborting due to 17 previous errors
+error: unneeded `return` statement
+  --> $DIR/needless_return.rs:119:32
+   |
+LL |         res.unwrap_or_else(|_| return Foo)
+   |                                ^^^^^^^^^^ help: remove `return`: `Foo`
+
+error: aborting due to 18 previous errors