about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2019-06-03 19:12:17 +0000
committerbors <bors@rust-lang.org>2019-06-03 19:12:17 +0000
commit6ffb8f53ee1cb0903f9df7d2fdb37ad06d748566 (patch)
tree3d027e55bac5a596c40da879190e94e86ab82db3 /src/test
parent61d286e9d0530bea8fb1ae24be3989baa9ea08eb (diff)
parentde2bf3a761db4510c7aae109ada58acbbc450fa7 (diff)
downloadrust-6ffb8f53ee1cb0903f9df7d2fdb37ad06d748566.tar.gz
rust-6ffb8f53ee1cb0903f9df7d2fdb37ad06d748566.zip
Auto merge of #61100 - varkor:must_use-tuple-expr, r=cramertj
Apply #[must_use] lint to components of tuples

Fixes https://github.com/rust-lang/rust/issues/61061.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/lint/must_use-tuple.rs17
-rw-r--r--src/test/ui/lint/must_use-tuple.stderr47
2 files changed, 64 insertions, 0 deletions
diff --git a/src/test/ui/lint/must_use-tuple.rs b/src/test/ui/lint/must_use-tuple.rs
new file mode 100644
index 00000000000..f6b579a7f35
--- /dev/null
+++ b/src/test/ui/lint/must_use-tuple.rs
@@ -0,0 +1,17 @@
+#![deny(unused_must_use)]
+
+fn foo() -> (Result<(), ()>, ()) {
+    (Ok::<(), ()>(()), ())
+}
+
+fn main() {
+    (Ok::<(), ()>(()),); //~ ERROR unused `std::result::Result`
+
+    (Ok::<(), ()>(()), 0, Ok::<(), ()>(()), 5);
+    //~^ ERROR unused `std::result::Result`
+    //~^^ ERROR unused `std::result::Result`
+
+    foo(); //~ ERROR unused `std::result::Result`
+
+    ((Err::<(), ()>(()), ()), ()); //~ ERROR unused `std::result::Result`
+}
diff --git a/src/test/ui/lint/must_use-tuple.stderr b/src/test/ui/lint/must_use-tuple.stderr
new file mode 100644
index 00000000000..45d2a439e52
--- /dev/null
+++ b/src/test/ui/lint/must_use-tuple.stderr
@@ -0,0 +1,47 @@
+error: unused `std::result::Result` in tuple element 0 that must be used
+  --> $DIR/must_use-tuple.rs:8:6
+   |
+LL |     (Ok::<(), ()>(()),);
+   |      ^^^^^^^^^^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/must_use-tuple.rs:1:9
+   |
+LL | #![deny(unused_must_use)]
+   |         ^^^^^^^^^^^^^^^
+   = note: this `Result` may be an `Err` variant, which should be handled
+
+error: unused `std::result::Result` in tuple element 0 that must be used
+  --> $DIR/must_use-tuple.rs:10:6
+   |
+LL |     (Ok::<(), ()>(()), 0, Ok::<(), ()>(()), 5);
+   |      ^^^^^^^^^^^^^^^^
+   |
+   = note: this `Result` may be an `Err` variant, which should be handled
+
+error: unused `std::result::Result` in tuple element 2 that must be used
+  --> $DIR/must_use-tuple.rs:10:27
+   |
+LL |     (Ok::<(), ()>(()), 0, Ok::<(), ()>(()), 5);
+   |                           ^^^^^^^^^^^^^^^^
+   |
+   = note: this `Result` may be an `Err` variant, which should be handled
+
+error: unused `std::result::Result` in tuple element 0 that must be used
+  --> $DIR/must_use-tuple.rs:14:5
+   |
+LL |     foo();
+   |     ^^^^^^
+   |
+   = note: this `Result` may be an `Err` variant, which should be handled
+
+error: unused `std::result::Result` in tuple element 0 that must be used
+  --> $DIR/must_use-tuple.rs:16:6
+   |
+LL |     ((Err::<(), ()>(()), ()), ());
+   |      ^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: this `Result` may be an `Err` variant, which should be handled
+
+error: aborting due to 5 previous errors
+