summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/tests/ui/unused_async.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clippy/tests/ui/unused_async.rs')
-rw-r--r--src/tools/clippy/tests/ui/unused_async.rs48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/tools/clippy/tests/ui/unused_async.rs b/src/tools/clippy/tests/ui/unused_async.rs
new file mode 100644
index 000000000..4ca7f29b3
--- /dev/null
+++ b/src/tools/clippy/tests/ui/unused_async.rs
@@ -0,0 +1,48 @@
+#![warn(clippy::unused_async)]
+
+use std::future::Future;
+use std::pin::Pin;
+
+async fn foo() -> i32 {
+ 4
+}
+
+async fn bar() -> i32 {
+ foo().await
+}
+
+struct S;
+
+impl S {
+ async fn unused(&self) -> i32 {
+ 1
+ }
+
+ async fn used(&self) -> i32 {
+ self.unused().await
+ }
+}
+
+trait AsyncTrait {
+ fn trait_method() -> Pin<Box<dyn Future<Output = i32>>>;
+}
+
+macro_rules! async_trait_impl {
+ () => {
+ impl AsyncTrait for S {
+ fn trait_method() -> Pin<Box<dyn Future<Output = i32>>> {
+ async fn unused() -> i32 {
+ 5
+ }
+
+ Box::pin(unused())
+ }
+ }
+ };
+}
+async_trait_impl!();
+
+fn main() {
+ foo();
+ bar();
+}