mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-02 18:27:37 +00:00
28 lines
560 B
Rust
28 lines
560 B
Rust
//! Regression test for #122630
|
|
//@ compile-flags: -Zvalidate-mir
|
|
|
|
#![feature(coroutines, coroutine_trait, yield_expr)]
|
|
|
|
use std::ops::Coroutine;
|
|
|
|
const FOO_SIZE: usize = 1024;
|
|
struct Foo([u8; FOO_SIZE]);
|
|
|
|
impl Drop for Foo {
|
|
fn drop(&mut self) {}
|
|
}
|
|
|
|
fn overlap_move_points() -> impl Coroutine<Yield = ()> {
|
|
#[coroutine] static || {
|
|
let first = Foo([0; FOO_SIZE]);
|
|
yield;
|
|
let second = first;
|
|
yield;
|
|
let second = first;
|
|
//~^ ERROR: use of moved value: `first` [E0382]
|
|
yield;
|
|
}
|
|
}
|
|
|
|
fn main() {}
|