// Check that we can specialize on a concrete iterator type. This requires us // to consider which parameters in the parent impl are constrained. // check-pass #![feature(min_specialization)] trait SpecFromIter<T> { fn f(&self); } impl<'a, T: 'a, I: Iterator<Item = &'a T>> SpecFromIter<T> for I { default fn f(&self) {} } impl<'a, T> SpecFromIter<T> for std::slice::Iter<'a, T> { fn f(&self) {} } fn main() {}