2022-10-01 12:19:31 +02:00
|
|
|
// revisions: no_drop_tracking drop_tracking drop_tracking_mir
|
|
|
|
// [drop_tracking] compile-flags: -Zdrop-tracking
|
|
|
|
// [drop_tracking_mir] compile-flags: -Zdrop-tracking-mir
|
|
|
|
|
2018-04-16 12:41:32 +02:00
|
|
|
#![feature(generators, generator_trait)]
|
2017-07-07 16:12:44 -07:00
|
|
|
|
2017-07-20 08:07:58 +02:00
|
|
|
use std::ops::Generator;
|
2018-10-04 20:49:38 +02:00
|
|
|
use std::pin::Pin;
|
2017-07-07 16:12:44 -07:00
|
|
|
|
2018-04-16 12:41:32 +02:00
|
|
|
fn main() {
|
2017-07-07 16:12:44 -07:00
|
|
|
let _b = {
|
|
|
|
let a = 3;
|
2020-01-25 20:03:10 +01:00
|
|
|
Pin::new(&mut || yield &a).resume(())
|
2017-07-07 16:12:44 -07:00
|
|
|
//~^ ERROR: `a` does not live long enough
|
|
|
|
};
|
|
|
|
|
|
|
|
let _b = {
|
|
|
|
let a = 3;
|
|
|
|
|| {
|
|
|
|
yield &a
|
|
|
|
//~^ ERROR: `a` does not live long enough
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|