1 error[E0277]: `[async fn body@$DIR/async.rs:23:29: 25:2]` is not a future
2 --> $DIR/async.rs:23:29
4 LL | async fn foo(x: u32) -> u32 {
5 | _____________________________-
10 | |_`[async fn body@$DIR/async.rs:23:29: 25:2]` is not a future
11 | required by a bound introduced by this call
13 = help: the trait `Future` is not implemented for `[async fn body@$DIR/async.rs:23:29: 25:2]`
14 = note: [async fn body@$DIR/async.rs:23:29: 25:2] must be a future or must implement `IntoFuture` to be awaited
15 note: required by a bound in `identity_future`
16 --> $SRC_DIR/core/src/future/mod.rs:LL:COL
18 error[E0277]: the size for values of type `<[async fn body@$DIR/async.rs:23:29: 25:2] as Future>::Output` cannot be known at compilation time
19 --> $DIR/async.rs:23:29
21 LL | async fn foo(x: u32) -> u32 {
22 | _____________________________^
25 | |_^ doesn't have a size known at compile-time
27 = help: the trait `Sized` is not implemented for `<[async fn body@$DIR/async.rs:23:29: 25:2] as Future>::Output`
28 note: required by a bound in `identity_future`
29 --> $SRC_DIR/core/src/future/mod.rs:LL:COL
31 error[E0277]: `[async fn body@$DIR/async.rs:23:29: 25:2]` is not a future
32 --> $DIR/async.rs:23:25
34 LL | async fn foo(x: u32) -> u32 {
35 | ^^^ `[async fn body@$DIR/async.rs:23:29: 25:2]` is not a future
37 = help: the trait `Future` is not implemented for `[async fn body@$DIR/async.rs:23:29: 25:2]`
38 = note: [async fn body@$DIR/async.rs:23:29: 25:2] must be a future or must implement `IntoFuture` to be awaited
40 error: internal compiler error: projection clauses should be implied from elsewhere. obligation: `Obligation(predicate=Binder(ProjectionPredicate(AliasTy { substs: [[async fn body@$DIR/async.rs:23:29: 25:2]], def_id: ...), _use_mk_alias_ty_instead: () }, Term::Ty(u32)), []), depth=0)`
41 --> $DIR/async.rs:23:25
43 LL | async fn foo(x: u32) -> u32 {
44 | ^^^query stack during panic:
45 #0 [typeck] type-checking `foo`
46 #1 [thir_body] building THIR for `foo`
47 #2 [mir_built] building MIR for `foo`
48 #3 [unsafety_check_result] unsafety-checking `foo`
49 #4 [mir_const] preparing `foo` for borrow checking
50 #5 [mir_promoted] processing MIR for `foo`
51 #6 [mir_borrowck] borrow-checking `foo`
52 #7 [type_of] computing type of `foo::{opaque#0}`
53 #8 [check_mod_item_types] checking item types in top-level module
54 #9 [analysis] running analysis passes on this crate
56 error: aborting due to 4 previous errors
58 For more information about this error, try `rustc --explain E0277`.