| #![feature(specialization)] | |
| //~^ WARN the feature `specialization` is incomplete | |
| trait Iterate<'a> { | |
| type Ty: Valid; | |
| fn iterate(self); | |
| } | |
| impl<'a, T> Iterate<'a> for T | |
| where | |
| T: Check, | |
| { | |
| default type Ty = (); | |
| //~^ ERROR the trait bound `(): Valid` is not satisfied | |
| default fn iterate(self) {} | |
| } | |
| trait Check {} | |
| impl<'a, T> Check for T where <T as Iterate<'a>>::Ty: Valid {} | |
| trait Valid {} | |
| fn main() { | |
| Iterate::iterate(0); | |
| } |