about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorPierre-Andre Gagnon <pagagnon@gmail.com>2021-02-02 18:39:23 -0500
committerPierre-Andre Gagnon <pagagnon@gmail.com>2021-02-02 18:39:23 -0500
commitbfbc0835870f8bf6cde79a01dfe7de351dde14aa (patch)
tree0501523283e0f73a9d18a70a2bb2d9a2f94b7fec /tests
parentc5f3f9df3bb1d89ed8cd624c595af90396899360 (diff)
downloadrust-bfbc0835870f8bf6cde79a01dfe7de351dde14aa.tar.gz
rust-bfbc0835870f8bf6cde79a01dfe7de351dde14aa.zip
Fix for issue 6640
Diffstat (limited to 'tests')
-rw-r--r--tests/ui/unnecessary_wraps.rs28
-rw-r--r--tests/ui/unnecessary_wraps.stderr109
2 files changed, 34 insertions, 103 deletions
diff --git a/tests/ui/unnecessary_wraps.rs b/tests/ui/unnecessary_wraps.rs
index a4570098d71..2d6aedc97ef 100644
--- a/tests/ui/unnecessary_wraps.rs
+++ b/tests/ui/unnecessary_wraps.rs
@@ -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);
 }
diff --git a/tests/ui/unnecessary_wraps.stderr b/tests/ui/unnecessary_wraps.stderr
index 410f054b8ef..3ca5a8d1702 100644
--- a/tests/ui/unnecessary_wraps.stderr
+++ b/tests/ui/unnecessary_wraps.stderr
@@ -1,106 +1,9 @@
-error: this function's return value is unnecessarily wrapped by `Option`
-  --> $DIR/unnecessary_wraps.rs:8:1
-   |
-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 {
- ...
-
-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[E0282]: type annotations needed
+  --> $DIR/unnecessary_wraps.rs:138:9
    |
+LL |         Ok(());
+   |         ^^ cannot infer type for type parameter `E` declared on the enum `Result`
 
-error: aborting due to 5 previous errors
+error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0282`.