rust/tests/ui/coroutine/issue-52398.rs

29 lines
642 B
Rust

//@ run-pass
#![allow(unused_variables)]
#![feature(coroutines)]
use std::cell::RefCell;
struct A;
impl A {
fn test(&self, a: ()) {}
}
fn main() {
// Test that the MIR local with type &A created for the auto-borrow adjustment
// is caught by typeck
#[coroutine] move || { //~ WARN unused coroutine that must be used
A.test(yield);
};
// Test that the std::cell::Ref temporary returned from the `borrow` call
// is caught by typeck
let y = RefCell::new(true);
#[coroutine] static move || { //~ WARN unused coroutine that must be used
yield *y.borrow();
return "Done";
};
}