diff options
Diffstat (limited to 'src/tools/clippy/tests/ui/panic_in_result_fn.rs')
-rw-r--r-- | src/tools/clippy/tests/ui/panic_in_result_fn.rs | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui/panic_in_result_fn.rs b/src/tools/clippy/tests/ui/panic_in_result_fn.rs new file mode 100644 index 000000000..e75eb1b6e --- /dev/null +++ b/src/tools/clippy/tests/ui/panic_in_result_fn.rs @@ -0,0 +1,70 @@ +#![warn(clippy::panic_in_result_fn)] +#![allow(clippy::unnecessary_wraps)] +struct A; + +impl A { + fn result_with_panic() -> Result<bool, String> // should emit lint + { + panic!("error"); + } + + fn result_with_unimplemented() -> Result<bool, String> // should emit lint + { + unimplemented!(); + } + + fn result_with_unreachable() -> Result<bool, String> // should emit lint + { + unreachable!(); + } + + fn result_with_todo() -> Result<bool, String> // should emit lint + { + todo!("Finish this"); + } + + fn other_with_panic() // should not emit lint + { + panic!(""); + } + + fn other_with_unreachable() // should not emit lint + { + unreachable!(); + } + + fn other_with_unimplemented() // should not emit lint + { + unimplemented!(); + } + + fn other_with_todo() // should not emit lint + { + todo!("finish this") + } + + fn result_without_banned_functions() -> Result<bool, String> // should not emit lint + { + Ok(true) + } +} + +fn function_result_with_panic() -> Result<bool, String> // should emit lint +{ + panic!("error"); +} + +fn todo() { + println!("something"); +} + +fn function_result_with_custom_todo() -> Result<bool, String> // should not emit lint +{ + todo(); + Ok(true) +} + +fn main() -> Result<(), String> { + todo!("finish main method"); + Ok(()) +} |