9 // explicitly named variants of what one would normally denote by the
10 // unit type `()`. Why do this? So that we can differentiate them in
11 // the diagnostic output.
17 impl<'a, A, T> T0<'a, A> for L<T>
24 trait T1: for<'r> Ty<'r> {
25 fn m<'a, B: Ty<'a>, F>(&self, f: F) -> Unit1
27 F: for<'r> T0<'r, (<Self as Ty<'r>>::V,), O = <B as Ty<'r>>::V>,
40 //~^ ERROR to be a closure that returns `Unit3`, but it returns `Unit4`
41 //~| ERROR type mismatch
50 impl<'a> Ty<'a> for Unit2 {