| //@check-pass | |
| #![feature(impl_trait_in_assoc_type)] | |
| trait Trait { | |
| type Opaque1; | |
| type Opaque2; | |
| fn constrain(self) -> (Self::Opaque1, Self::Opaque2); | |
| } | |
| impl<'a> Trait for &'a () { | |
| type Opaque1 = impl Sized; | |
| type Opaque2 = impl Sized + 'a; | |
| fn constrain(self) -> (Self::Opaque1, Self::Opaque2) { | |
| let a: Self::Opaque1 = (); | |
| let b: Self::Opaque2 = self; | |
| (a, b) | |
| } | |
| } | |
| fn main() {} |