mirror of https://github.com/rust-lang/rust
28 lines
483 B
Rust
28 lines
483 B
Rust
//@ edition:2018
|
|
|
|
// This test checks that we emit the correct borrowck error when `Self` is used as a return type.
|
|
// See #61949 for context.
|
|
|
|
pub struct Foo<'a> {
|
|
pub bar: &'a i32,
|
|
}
|
|
|
|
impl<'a> Foo<'a> {
|
|
pub async fn new(_bar: &'a i32) -> Self {
|
|
Foo {
|
|
bar: &22
|
|
}
|
|
}
|
|
}
|
|
|
|
pub async fn foo() {
|
|
let x = {
|
|
let bar = 22;
|
|
Foo::new(&bar).await
|
|
//~^ ERROR `bar` does not live long enough
|
|
};
|
|
drop(x);
|
|
}
|
|
|
|
fn main() { }
|