Error code E0276
A trait implementation has stricter requirements than the trait definition.
Erroneous code example:
#![allow(unused)]
fn main() {
trait Foo {
fn foo<T>(x: T);
}
impl Foo for bool {
fn foo<T>(x: T) where T: Copy {}
}
}
Here, all types implementing Foo must have a method foo<T>(x: T) which can
take any type T. However, in the impl for bool, we have added an extra
bound that T is Copy, which isn’t compatible with the original trait.
Consider removing the bound from the method or adding the bound to the original method definition in the trait.