Upgrade rust/crates/async-trait to 0.1.38
Change-Id: I894c990c19b1ac3d74e4bf002cf581b9875e730e
diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
index c4c65e4..46160ea 100644
--- a/.cargo_vcs_info.json
+++ b/.cargo_vcs_info.json
@@ -1,5 +1,5 @@
{
"git": {
- "sha1": "89923af3d553c990336ec29a68e50e15efff1734"
+ "sha1": "7e82be9fd3c72dd64d910ca8f88733607e52d690"
}
}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1ee3325..710cee3 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -12,7 +12,7 @@
strategy:
fail-fast: false
matrix:
- rust: [beta, stable, 1.39.0]
+ rust: [beta, stable, 1.40.0]
include:
- rust: nightly
rustflags: --cfg async_trait_nightly_testing
@@ -25,6 +25,14 @@
env:
RUSTFLAGS: ${{matrix.rustflags}}
+ msrv:
+ name: Rust 1.39.0
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: dtolnay/rust-toolchain@1.39.0
+ - run: cargo check
+
clippy:
name: Clippy
runs-on: ubuntu-latest
diff --git a/Cargo.toml b/Cargo.toml
index 675035a..d4be2ff 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -13,7 +13,7 @@
[package]
edition = "2018"
name = "async-trait"
-version = "0.1.36"
+version = "0.1.38"
authors = ["David Tolnay <dtolnay@gmail.com>"]
description = "Type erasure for async trait methods"
documentation = "https://docs.rs/async-trait"
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index 2921a5f..41eb5c7 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -1,6 +1,6 @@
[package]
name = "async-trait"
-version = "0.1.36"
+version = "0.1.38"
authors = ["David Tolnay <dtolnay@gmail.com>"]
edition = "2018"
license = "MIT OR Apache-2.0"
diff --git a/METADATA b/METADATA
index 889b98f..ebd3009 100644
--- a/METADATA
+++ b/METADATA
@@ -9,11 +9,11 @@
type: GIT
value: "https://github.com/dtolnay/async-trait"
}
- version: "0.1.36"
+ version: "0.1.38"
license_type: NOTICE
last_upgrade_date {
year: 2020
month: 8
- day: 11
+ day: 17
}
}
diff --git a/README.md b/README.md
index 7d3e050..c393c10 100644
--- a/README.md
+++ b/README.md
@@ -103,18 +103,18 @@
## Explanation
Async fns get transformed into methods that return `Pin<Box<dyn Future + Send +
-'async>>` and delegate to a private async freestanding function.
+'async_trait>>` and delegate to a private async freestanding function.
For example the `impl Advertisement for AutoplayingVideo` above would be
expanded as:
```rust
impl Advertisement for AutoplayingVideo {
- fn run<'async>(
- &'async self,
- ) -> Pin<Box<dyn std::future::Future<Output = ()> + Send + 'async>>
+ fn run<'async_trait>(
+ &'async_trait self,
+ ) -> Pin<Box<dyn std::future::Future<Output = ()> + Send + 'async_trait>>
where
- Self: Sync + 'async,
+ Self: Sync + 'async_trait,
{
async fn run(_self: &AutoplayingVideo) {
/* the original method body */
diff --git a/src/expand.rs b/src/expand.rs
index 7d0cec2..7c3ab5a 100644
--- a/src/expand.rs
+++ b/src/expand.rs
@@ -446,9 +446,11 @@
let box_pin = quote_spanned!(brace.span=> {
#[allow(
#allow_non_snake_case
+ unused_parens, // https://github.com/dtolnay/async-trait/issues/118
clippy::missing_docs_in_private_items,
clippy::needless_lifetimes,
clippy::ptr_arg,
+ clippy::trivially_copy_pass_by_ref,
clippy::type_repetition_in_bounds,
clippy::used_underscore_binding,
)]
diff --git a/tests/test.rs b/tests/test.rs
index 3ea2d15..4ecab07 100644
--- a/tests/test.rs
+++ b/tests/test.rs
@@ -706,6 +706,8 @@
// https://github.com/dtolnay/async-trait/issues/83
pub mod issue83 {
+ #![allow(clippy::needless_arbitrary_self_type)]
+
use async_trait::async_trait;
#[async_trait]
@@ -959,3 +961,20 @@
async fn load(&self, _key: &str) {}
}
}
+
+// https://github.com/dtolnay/async-trait/issues/120
+mod issue120 {
+ #![deny(clippy::trivially_copy_pass_by_ref)]
+
+ use async_trait::async_trait;
+
+ #[async_trait]
+ trait Trait {
+ async fn f(&self);
+ }
+
+ #[async_trait]
+ impl Trait for () {
+ async fn f(&self) {}
+ }
+}
diff --git a/tests/ui/self-span.stderr b/tests/ui/self-span.stderr
index f897c01..fb11528 100644
--- a/tests/ui/self-span.stderr
+++ b/tests/ui/self-span.stderr
@@ -5,7 +5,7 @@
| --------------- `S` defined here
...
18 | let _: Self = Self;
- | ^^^^ did you mean `S { /* fields */ }`?
+ | ^^^^ help: use struct literal syntax instead: `S {}`
error[E0308]: mismatched types
--> $DIR/self-span.rs:17:21