error[E0053]: method `foo` has an incompatible type for trait --> $DIR/async-example-desugared-boxed-in-trait.rs:15:28 | LL | async fn foo(&self) -> i32 { | ^^^ expected struct `Pin`, found opaque type | note: type in trait --> $DIR/async-example-desugared-boxed-in-trait.rs:11:22 | LL | fn foo(&self) -> Pin + '_>>; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: expected fn pointer `fn(&i32) -> Pin>>` found fn pointer `fn(&i32) -> impl Future` error: aborting due to previous error For more information about this error, try `rustc --explain E0053`.