// check-fail trait Trait { type Assoc; } impl<'a> Trait for &'a () { type Assoc = &'a (); } struct MyTuple<T, U = <&'static () as Trait>::Assoc>(T, U); fn test_tuple(x: &(), y: &()) { MyTuple::<_>((), x); //~^ ERROR let _: MyTuple::<_> = MyTuple((), y); //~^ ERROR } struct MyStruct<T, U = <&'static () as Trait>::Assoc> { val: (T, U), } fn test_struct(x: &(), y: &()) { MyStruct::<_> { val: ((), x) }; //~^ ERROR let _: MyStruct::<_> = MyStruct { val: ((), y) }; //~^ ERROR } fn main() {}