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