1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
//@ run-pass
#![allow(unused_unsafe)]
#![feature(coroutines)]
fn main() {
unsafe {
#[coroutine] static move || { //~ WARN unused coroutine that must be used
// Tests that the coroutine transformation finds out that `a` is not live
// during the yield expression. Type checking will also compute liveness
// and it should also find out that `a` is not live.
// The compiler will panic if the coroutine transformation finds that
// `a` is live and type checking finds it dead.
let a = {
yield ();
4i32
};
let _ = &a;
};
}
}
|