Fix for issue 6640
This commit is contained in:
parent
c5f3f9df3b
commit
bfbc083587
3 changed files with 93 additions and 136 deletions
|
|
@ -116,8 +116,36 @@ fn issue_6384(s: &str) -> Option<&str> {
|
|||
})
|
||||
}
|
||||
|
||||
// should be linted
|
||||
fn issue_6640_1(a: bool, b: bool) -> Option<()> {
|
||||
if a && b {
|
||||
return Some(());
|
||||
}
|
||||
if a {
|
||||
Some(());
|
||||
Some(())
|
||||
} else {
|
||||
return Some(());
|
||||
}
|
||||
}
|
||||
|
||||
// should be linted
|
||||
fn issue_6640_2(a: bool, b: bool) -> Result<(), i32> {
|
||||
if a && b {
|
||||
return Ok(());
|
||||
}
|
||||
if a {
|
||||
Ok(());
|
||||
Ok(())
|
||||
} else {
|
||||
return Ok(());
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
// method calls are not linted
|
||||
func1(true, true);
|
||||
func2(true, true);
|
||||
issue_6640_1(true, true);
|
||||
issue_6640_2(true, true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,106 +1,9 @@
|
|||
error: this function's return value is unnecessarily wrapped by `Option`
|
||||
--> $DIR/unnecessary_wraps.rs:8:1
|
||||
error[E0282]: type annotations needed
|
||||
--> $DIR/unnecessary_wraps.rs:138:9
|
||||
|
|
||||
LL | / fn func1(a: bool, b: bool) -> Option<i32> {
|
||||
LL | | if a && b {
|
||||
LL | | return Some(42);
|
||||
LL | | }
|
||||
... |
|
||||
LL | | }
|
||||
LL | | }
|
||||
| |_^
|
||||
|
|
||||
= note: `-D clippy::unnecessary-wraps` implied by `-D warnings`
|
||||
help: remove `Option` from the return type...
|
||||
|
|
||||
LL | fn func1(a: bool, b: bool) -> i32 {
|
||||
| ^^^
|
||||
help: ...and change the returning expressions
|
||||
|
|
||||
LL | return 42;
|
||||
LL | }
|
||||
LL | if a {
|
||||
LL | Some(-1);
|
||||
LL | 2
|
||||
LL | } else {
|
||||
...
|
||||
LL | Ok(());
|
||||
| ^^ cannot infer type for type parameter `E` declared on the enum `Result`
|
||||
|
||||
error: this function's return value is unnecessarily wrapped by `Option`
|
||||
--> $DIR/unnecessary_wraps.rs:21:1
|
||||
|
|
||||
LL | / fn func2(a: bool, b: bool) -> Option<i32> {
|
||||
LL | | if a && b {
|
||||
LL | | return Some(10);
|
||||
LL | | }
|
||||
... |
|
||||
LL | | }
|
||||
LL | | }
|
||||
| |_^
|
||||
|
|
||||
help: remove `Option` from the return type...
|
||||
|
|
||||
LL | fn func2(a: bool, b: bool) -> i32 {
|
||||
| ^^^
|
||||
help: ...and change the returning expressions
|
||||
|
|
||||
LL | return 10;
|
||||
LL | }
|
||||
LL | if a {
|
||||
LL | 20
|
||||
LL | } else {
|
||||
LL | 30
|
||||
|
|
||||
|
||||
error: this function's return value is unnecessarily wrapped by `Option`
|
||||
--> $DIR/unnecessary_wraps.rs:51:1
|
||||
|
|
||||
LL | / fn func5() -> Option<i32> {
|
||||
LL | | Some(1)
|
||||
LL | | }
|
||||
| |_^
|
||||
|
|
||||
help: remove `Option` from the return type...
|
||||
|
|
||||
LL | fn func5() -> i32 {
|
||||
| ^^^
|
||||
help: ...and change the returning expressions
|
||||
|
|
||||
LL | 1
|
||||
|
|
||||
|
||||
error: this function's return value is unnecessarily wrapped by `Result`
|
||||
--> $DIR/unnecessary_wraps.rs:61:1
|
||||
|
|
||||
LL | / fn func7() -> Result<i32, ()> {
|
||||
LL | | Ok(1)
|
||||
LL | | }
|
||||
| |_^
|
||||
|
|
||||
help: remove `Result` from the return type...
|
||||
|
|
||||
LL | fn func7() -> i32 {
|
||||
| ^^^
|
||||
help: ...and change the returning expressions
|
||||
|
|
||||
LL | 1
|
||||
|
|
||||
|
||||
error: this function's return value is unnecessarily wrapped by `Option`
|
||||
--> $DIR/unnecessary_wraps.rs:93:5
|
||||
|
|
||||
LL | / fn func12() -> Option<i32> {
|
||||
LL | | Some(1)
|
||||
LL | | }
|
||||
| |_____^
|
||||
|
|
||||
help: remove `Option` from the return type...
|
||||
|
|
||||
LL | fn func12() -> i32 {
|
||||
| ^^^
|
||||
help: ...and change the returning expressions
|
||||
|
|
||||
LL | 1
|
||||
|
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0282`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue