23 lines
458 B
Rust
23 lines
458 B
Rust
|
//@ known-bug: #122630
|
||
|
//@ compile-flags: -Zvalidate-mir
|
||
|
|
||
|
use std::ops::Coroutine;
|
||
|
|
||
|
const FOO_SIZE: usize = 1024;
|
||
|
struct Foo([u8; FOO_SIZE]);
|
||
|
|
||
|
impl Drop for Foo {
|
||
|
fn move_before_yield_with_noop() -> impl Coroutine<Yield = ()> {}
|
||
|
}
|
||
|
|
||
|
fn overlap_move_points() -> impl Coroutine<Yield = ()> {
|
||
|
static || {
|
||
|
let first = Foo([0; FOO_SIZE]);
|
||
|
yield;
|
||
|
let second = first;
|
||
|
yield;
|
||
|
let second = first;
|
||
|
yield;
|
||
|
}
|
||
|
}
|