diff --git a/compiler/rustc_lint/messages.ftl b/compiler/rustc_lint/messages.ftl index 060cc77c70ddb..4cabb5c326663 100644 --- a/compiler/rustc_lint/messages.ftl +++ b/compiler/rustc_lint/messages.ftl @@ -6,7 +6,7 @@ lint_array_into_iter = or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value lint_async_fn_in_trait = use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified - .note = you can suppress this lint if you plan to use the trait locally, for concrete types, or do not care about auto traits like `Send` on the `Future` + .note = you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` .suggestion = you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send` lint_atomic_ordering_fence = memory fences cannot have `Relaxed` ordering diff --git a/compiler/rustc_lint/src/async_fn_in_trait.rs b/compiler/rustc_lint/src/async_fn_in_trait.rs index 9214e04bb8b60..e0572b8ed43b1 100644 --- a/compiler/rustc_lint/src/async_fn_in_trait.rs +++ b/compiler/rustc_lint/src/async_fn_in_trait.rs @@ -39,8 +39,8 @@ declare_lint! { /// } /// /// fn test(x: T) { - /// fn is_send(_: T) {} - /// is_send(x.method()); // Not OK. + /// fn spawn(_: T) {} + /// spawn(x.method()); // Not OK. /// } /// ``` /// @@ -68,11 +68,10 @@ declare_lint! { /// } /// ``` /// - /// Conversely, if the trait is used only locally, if only concrete types - /// that implement the trait are used, or if the trait author otherwise - /// does not care that the trait will not promise that the returned - /// [`Future`] implements any [auto traits] such as [`Send`], then the - /// lint may be suppressed. + /// Conversely, if the trait is used only locally, if it is never used in + /// generic functions, or if it is only used in single-threaded contexts + /// that do not care whether the returned [`Future`] implements [auto traits] + /// such as [`Send`], then the lint may be suppressed. /// /// [`Future`]: https://doc.rust-lang.org/core/future/trait.Future.html /// [`Send`]: https://doc.rust-lang.org/core/marker/trait.Send.html diff --git a/tests/ui/async-await/in-trait/warn.stderr b/tests/ui/async-await/in-trait/warn.stderr index 0e9c9e2e28d18..eac41a6e92425 100644 --- a/tests/ui/async-await/in-trait/warn.stderr +++ b/tests/ui/async-await/in-trait/warn.stderr @@ -4,7 +4,7 @@ error: use of `async fn` in public traits is discouraged as auto trait bounds ca LL | async fn not_send(); | ^^^^^ | - = note: you can suppress this lint if you plan to use the trait locally, for concrete types, or do not care about auto traits like `Send` on the `Future` + = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` note: the lint level is defined here --> $DIR/warn.rs:4:9 |