1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
// check-pass fn f(_: X) -> X { unimplemented!() } fn g<'a>(_: X<'a>) -> X<'a> { unimplemented!() } type X<'a> = <&'a () as Trait>::Value; trait Trait { type Value; } impl<'a> Trait for &'a () { type Value = (); } fn main() {}