The `Sync` bound nobody asked for

&self as a receiver in an async method of a trait whose returned future must be Send implicitly forces Sync on the trait implementor type — even if neither the trait nor its callers ever explicitly ask for Sync . Here&rsquo;s a quick demonstration. 1.1. Future without Send bound, Send + Sync impl type — compiles: 1 2 3 4 5 6 7 8 9 10 11 struct SendSync ; static_assertions:: assert_impl_all!…