summaryrefslogtreecommitdiffstats
path: root/tests/ui/lint/unused/unused-async.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/lint/unused/unused-async.rs')
-rw-r--r--tests/ui/lint/unused/unused-async.rs62
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/ui/lint/unused/unused-async.rs b/tests/ui/lint/unused/unused-async.rs
new file mode 100644
index 000000000..4be93aa15
--- /dev/null
+++ b/tests/ui/lint/unused/unused-async.rs
@@ -0,0 +1,62 @@
+// edition:2018
+#![deny(unused_must_use)]
+
+
+#[must_use]
+async fn foo() -> i32 {
+ 1
+}
+
+#[must_use]
+fn bar() -> impl std::future::Future<Output=i32> {
+ async {
+ 42
+ }
+}
+
+async fn baz() -> i32 {
+ 0
+}
+
+struct Wowee {}
+
+impl Wowee {
+ #[must_use]
+ async fn test_method() -> i32 {
+ 1
+ }
+}
+
+async fn test() {
+ foo(); //~ ERROR unused return value of `foo` that must be used
+ //~^ ERROR unused implementer of `Future` that must be used
+ foo().await; //~ ERROR unused output of future returned by `foo` that must be used
+ bar(); //~ ERROR unused return value of `bar` that must be used
+ //~^ ERROR unused implementer of `Future` that must be used
+ bar().await; //~ ERROR unused output of future returned by `bar` that must be used
+ baz(); //~ ERROR unused implementer of `Future` that must be used
+ baz().await; // ok
+}
+
+/* FIXME(guswynn) update this test when async-fn-in-traits works
+trait Doer {
+ #[must_use]
+ async fn test_trait_method() -> i32;
+ WARNING must_use
+ async fn test_other_trait() -> i32;
+}
+
+impl Doer for Wowee {
+ async fn test_trait_method() -> i32 {
+ 1
+ }
+ #[must_use]
+ async fn test_other_trait() -> i32 {
+ WARNING must_use
+ 1
+ }
+}
+*/
+
+fn main() {
+}