//@ run-pass #![feature(ergonomic_clones)] #![allow(incomplete_features)] use std::clone::UseCloned; #[derive(Clone)] struct Foo; impl UseCloned for Foo {} fn work(_: Box) {} fn foo(_: F) {} pub fn main() { let a = Box::new(Foo); foo(use || { foo(use || { work(a) }) }); let x = use || { use || { Foo } }; let _y = x(); }