// revisions: no_drop_tracking drop_tracking drop_tracking_mir // [drop_tracking] compile-flags: -Zdrop-tracking // [drop_tracking_mir] compile-flags: -Zdrop-tracking-mir // Provoke an unresolved type error (T). // Error message should pinpoint the type parameter T as needing to be bound // (rather than give a general error message) // edition:2018 async fn bar() -> () {} async fn foo() { bar().await; //[drop_tracking_mir]~^ ERROR type annotations needed //[drop_tracking_mir]~| NOTE cannot infer type of the type parameter `T` //[no_drop_tracking,drop_tracking]~^^^ ERROR type inside `async fn` body must be known in this context //[no_drop_tracking,drop_tracking]~| ERROR type inside `async fn` body must be known in this context //[no_drop_tracking,drop_tracking]~| ERROR type inside `async fn` body must be known in this context //[no_drop_tracking,drop_tracking]~| NOTE cannot infer type for type parameter `T` //[no_drop_tracking,drop_tracking]~| NOTE cannot infer type for type parameter `T` //[no_drop_tracking,drop_tracking]~| NOTE cannot infer type for type parameter `T` //[no_drop_tracking,drop_tracking]~| NOTE the type is part of the `async fn` body because of this `await` //[no_drop_tracking,drop_tracking]~| NOTE the type is part of the `async fn` body because of this `await` //[no_drop_tracking,drop_tracking]~| NOTE the type is part of the `async fn` body because of this `await` //[no_drop_tracking,drop_tracking]~| NOTE in this expansion of desugaring of `await` //[no_drop_tracking,drop_tracking]~| NOTE in this expansion of desugaring of `await` //[no_drop_tracking,drop_tracking]~| NOTE in this expansion of desugaring of `await` //[no_drop_tracking]~^^^^^^^^^^^^^^^ ERROR type inside `async fn` body must be known in this context //[no_drop_tracking]~| ERROR type inside `async fn` body must be known in this context //[no_drop_tracking]~| NOTE cannot infer type for type parameter `T` //[no_drop_tracking]~| NOTE cannot infer type for type parameter `T` //[no_drop_tracking]~| NOTE the type is part of the `async fn` body because of this `await` //[no_drop_tracking]~| NOTE the type is part of the `async fn` body because of this `await` //[no_drop_tracking]~| NOTE in this expansion of desugaring of `await` //[no_drop_tracking]~| NOTE in this expansion of desugaring of `await` } fn main() {}