rust/tests/ui/polymorphization/drop_shims/transitive.rs
2023-01-11 09:32:08 +00:00

28 lines
368 B
Rust

// check-pass
// compile-flags:-Zpolymorphize=on
pub struct OnDrop<F: Fn()>(pub F);
impl<F: Fn()> Drop for OnDrop<F> {
fn drop(&mut self) { }
}
fn bar<F: FnOnce()>(f: F) {
let _ = OnDrop(|| ());
f()
}
fn foo<R, S: FnOnce()>(
_: R,
_: S,
) {
let bar = || {
bar(|| {})
};
let _ = bar();
}
fn main() {
foo(3u32, || {});
}