@CloudiDust This is what I mean by the O(n^2)
thing:
trait NewFn {
fn call(&self, u32);
}
impl<F: Fn(u32)> NewFn for F {
fn call(&self, x: u32) { self(x); }
}
impl<'a, F: NewFn + ?Sized> NewFn for &'a F {
fn call(&self, x: u32) { (**self).call(x); }
}
fn foo(f: &NewFn, n: u32) {
if n != 0 { foo(&f, n - 1); }
f.call(n);
}
fn main() {
foo(&|_| {}, 40000);
}
This triggers a timeout on playpen even with -O2