diff options
Diffstat (limited to 'src/tools/clippy/tests/ui/implicit_return.fixed')
-rw-r--r-- | src/tools/clippy/tests/ui/implicit_return.fixed | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui/implicit_return.fixed b/src/tools/clippy/tests/ui/implicit_return.fixed new file mode 100644 index 000000000..5e55b8b67 --- /dev/null +++ b/src/tools/clippy/tests/ui/implicit_return.fixed @@ -0,0 +1,140 @@ +// run-rustfix +#![feature(lint_reasons)] +#![warn(clippy::implicit_return)] +#![allow(clippy::needless_return, clippy::needless_bool, unused, clippy::never_loop)] + +fn test_end_of_fn() -> bool { + if true { + // no error! + return true; + } + + return true +} + +fn test_if_block() -> bool { + if true { return true } else { return false } +} + +#[rustfmt::skip] +fn test_match(x: bool) -> bool { + match x { + true => return false, + false => { return true }, + } +} + +fn test_match_with_unreachable(x: bool) -> bool { + match x { + true => return false, + false => unreachable!(), + } +} + +fn test_loop() -> bool { + loop { + return true; + } +} + +fn test_loop_with_block() -> bool { + loop { + { + return true; + } + } +} + +fn test_loop_with_nests() -> bool { + loop { + if true { + return 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 _ = || { return true }; + let _ = || return true; +} + +fn test_panic() -> bool { + panic!() +} + +fn test_return_macro() -> String { + return format!("test {}", "test") +} + +fn macro_branch_test() -> bool { + macro_rules! m { + ($t:expr, $f:expr) => { + if true { $t } else { $f } + }; + } + return m!(true, false) +} + +fn loop_test() -> bool { + 'outer: loop { + if true { + return true; + } + + let _ = loop { + if false { + return false; + } + if true { + break true; + } + }; + } +} + +fn loop_macro_test() -> bool { + macro_rules! m { + ($e:expr) => { + break $e + }; + } + return loop { + m!(true); + } +} + +fn divergent_test() -> bool { + fn diverge() -> ! { + panic!() + } + diverge() +} + +// issue #6940 +async fn foo() -> bool { + return true +} + +fn main() {} + +fn check_expect() -> bool { + if true { + // no error! + return true; + } + + #[expect(clippy::implicit_return)] + true +} |