diff options
Diffstat (limited to 'tests/ui/specialization/min_specialization/spec-iter.rs')
-rw-r--r-- | tests/ui/specialization/min_specialization/spec-iter.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/ui/specialization/min_specialization/spec-iter.rs b/tests/ui/specialization/min_specialization/spec-iter.rs new file mode 100644 index 000000000..e17e9dd5f --- /dev/null +++ b/tests/ui/specialization/min_specialization/spec-iter.rs @@ -0,0 +1,20 @@ +// 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() {} |