1 // Test that two distinct impls which match subtypes of one another
2 // yield coherence errors (or not) depending on the variance.
3 //
4 // Note: This scenario is currently accepted, but as part of the
5 // universe transition (#56105) may eventually become an error.
6
7 struct Foo<T> {
8 t: T,
9 }
10
11 impl Foo<for<'a, 'b> fn(&'a u8, &'b u8) -> &'a u8> {
method1(&self)12 fn method1(&self) {} //~ ERROR duplicate definitions with name `method1`
13 }
14
15 impl Foo<for<'a> fn(&'a u8, &'a u8) -> &'a u8> {
method1(&self)16 fn method1(&self) {}
17 }
18
main()19 fn main() {}
20