blob: 58eaa9c2c42635a4227808b3ec1ce6918e928d50 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
//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() {}
|