diff options
Diffstat (limited to 'src/tools/clippy/tests/ui/unwrap_in_result.rs')
-rw-r--r-- | src/tools/clippy/tests/ui/unwrap_in_result.rs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui/unwrap_in_result.rs b/src/tools/clippy/tests/ui/unwrap_in_result.rs new file mode 100644 index 000000000..2aa842adc --- /dev/null +++ b/src/tools/clippy/tests/ui/unwrap_in_result.rs @@ -0,0 +1,44 @@ +#![warn(clippy::unwrap_in_result)] + +struct A; + +impl A { + // should not be detected + fn good_divisible_by_3(i_str: String) -> Result<bool, String> { + // checks whether a string represents a number divisible by 3 + let i_result = i_str.parse::<i32>(); + match i_result { + Err(_e) => Err("Not a number".to_string()), + Ok(i) => { + if i % 3 == 0 { + return Ok(true); + } + Err("Number is not divisible by 3".to_string()) + }, + } + } + + // should be detected + fn bad_divisible_by_3(i_str: String) -> Result<bool, String> { + // checks whether a string represents a number divisible by 3 + let i = i_str.parse::<i32>().unwrap(); + if i % 3 == 0 { + Ok(true) + } else { + Err("Number is not divisible by 3".to_string()) + } + } + + fn example_option_expect(i_str: String) -> Option<bool> { + let i = i_str.parse::<i32>().expect("not a number"); + if i % 3 == 0 { + return Some(true); + } + None + } +} + +fn main() { + A::bad_divisible_by_3("3".to_string()); + A::good_divisible_by_3("3".to_string()); +} |