The current workaround used by nougat (that is, the : for<'any> LendingIterator__Item super trait which "only" features the specific associated type) does not bode well with dyn Traits.
Mainly: dyn Traits require that their associated types be provided, but to my knowledge it is not possible to higher-order specify the associated type of a super trait.
That is:
dyn for<'any> LendingIterator<T = &'any u8> fails saying that 'any is unbound / an unknown lifetime parameter;
dyn LendingIterator + for<'any> LendingIterator__Item<T = …> fails because it combines two full traits under a dyn;
dyn for<'any> LendingIterator__Item<T = …> may actually work (as in, it's a ?Sized implementor of LendingIterator), but, alas, it is no dyn LendingIterator;
The current workaround used by
nougat
(that is, the: for<'any> LendingIterator__Item
super trait which "only" features the specific associated type) does not bode well withdyn Trait
s.Mainly:
dyn Trait
s require that their associated types be provided, but to my knowledge it is not possible to higher-order specify the associated type of a super trait.That is:
dyn for<'any> LendingIterator<T = &'any u8>
fails saying that'any
is unbound / an unknown lifetime parameter;dyn LendingIterator + for<'any> LendingIterator__Item<T = …>
fails because it combines two full traits under adyn
;dyn for<'any> LendingIterator__Item<T = …>
may actually work (as in, it's a?Sized
implementor ofLendingIterator
), but, alas, it is nodyn LendingIterator
;