summaryrefslogtreecommitdiffstats
path: root/src/test/ui/lint/unused/unused-closure.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/lint/unused/unused-closure.rs')
-rw-r--r--src/test/ui/lint/unused/unused-closure.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/test/ui/lint/unused/unused-closure.rs b/src/test/ui/lint/unused/unused-closure.rs
new file mode 100644
index 000000000..c96c90731
--- /dev/null
+++ b/src/test/ui/lint/unused/unused-closure.rs
@@ -0,0 +1,35 @@
+// Test that closures and generators are "must use" types.
+// edition:2018
+
+#![feature(async_closure)]
+#![feature(generators)]
+#![deny(unused_must_use)]
+
+fn unused() {
+ || { //~ ERROR unused closure that must be used
+ println!("Hello!");
+ };
+
+ async {}; //~ ERROR unused implementer of `Future` that must be used
+ || async {}; //~ ERROR unused closure that must be used
+ async || {}; //~ ERROR unused closure that must be used
+
+
+ [Box::new([|| {}; 10]); 1]; //~ ERROR unused array of boxed arrays of closures that must be used
+
+ vec![|| "a"].pop().unwrap(); //~ ERROR unused closure that must be used
+
+ let b = false;
+ || true; //~ ERROR unused closure that must be used
+ println!("{}", b);
+}
+
+fn ignored() {
+ let _ = || {};
+ let _ = || yield 42;
+}
+
+fn main() {
+ unused();
+ ignored();
+}