#![feature(impl_trait_in_assoc_type)] pub trait Bar { type E: Copy; fn foo() -> Self::E; } impl Bar for S { type E = impl Copy; fn foo() -> Self::E { //~^ ERROR impl has stricter requirements than trait //~| ERROR the trait bound `S: Copy` is not satisfied in `(S, T)` [E0277] //~| ERROR the trait bound `T: Copy` is not satisfied in `(S, T)` [E0277] (S::default(), T::default()) } } fn main() {}