//@ compile-flags: -Zverbose-internals | |
#![feature(ergonomic_clones)] | |
#![allow(incomplete_features)] | |
fn to_fn_once<F: FnOnce()>(f: F) -> F { | |
f | |
} | |
fn f<T: std::fmt::Display>(y: T) { | |
struct Foo<U: std::fmt::Display> { | |
x: U, | |
}; | |
let foo = Foo { x: "x" }; | |
let c = to_fn_once(use || { | |
println!("{} {}", foo.x, y); | |
}); | |
c(); | |
c(); | |
//~^ ERROR use of moved value | |
} | |
fn main() { | |
f("S"); | |
} |