fn take_any(_: F) where F: FnOnce() { } fn take_const_owned(_: F) where F: FnOnce() + Sync + Send { } fn give_any(f: F) where F: FnOnce() { take_any(f); } fn give_owned(f: F) where F: FnOnce() + Send { take_any(f); take_const_owned(f); //~ ERROR `F` cannot be shared between threads safely [E0277] } fn main() {}