rust/tests/ui/type-alias-impl-trait/associated-type-impl-trait-...

22 lines
428 B
Rust

//@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() {}