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