// build-pass // compile-flags:-Zpolymorphize=on pub trait ParallelIterator: Sized { fn drive>(_: C) { C::into_folder(); } } pub trait Consumer: Sized { type Result; fn into_folder() -> Self::Result; } impl ParallelIterator for () {} impl Consumer for F { type Result = (); fn into_folder() -> Self::Result { unimplemented!() } } fn main() { <()>::drive(|| ()); }