summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/needless_return_with_question_mark.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clippy/tests/ui/needless_return_with_question_mark.rs')
-rw-r--r--src/tools/clippy/tests/ui/needless_return_with_question_mark.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui/needless_return_with_question_mark.rs b/src/tools/clippy/tests/ui/needless_return_with_question_mark.rs
index d253cae4d..66e1f438f 100644
--- a/src/tools/clippy/tests/ui/needless_return_with_question_mark.rs
+++ b/src/tools/clippy/tests/ui/needless_return_with_question_mark.rs
@@ -4,6 +4,8 @@
clippy::no_effect,
clippy::unit_arg,
clippy::useless_conversion,
+ clippy::diverging_sub_expression,
+ clippy::let_unit_value,
unused
)]
@@ -35,5 +37,43 @@ fn main() -> Result<(), ()> {
with_span! {
return Err(())?;
}
+
+ // Issue #11765
+ // Should not lint
+ let Some(s) = Some("") else {
+ return Err(())?;
+ };
+
+ let Some(s) = Some("") else {
+ let Some(s) = Some("") else {
+ return Err(())?;
+ };
+
+ return Err(())?;
+ };
+
+ let Some(_): Option<()> = ({
+ return Err(())?;
+ }) else {
+ panic!();
+ };
+
Err(())
}
+
+fn issue11616() -> Result<(), ()> {
+ let _x: String = {
+ return Err(())?;
+ };
+ let _x: () = {
+ return Err(())?;
+ //~^ ERROR: unneeded `return` statement with `?` operator
+ };
+ let _x = match 1 {
+ 1 => vec![1, 2],
+ _ => {
+ return Err(())?;
+ },
+ };
+ Ok(())
+}