+++ /dev/null
-// run-pass
-// Test that the right implementation is called through a trait
-// object when supertraits include multiple references to the
-// same trait, with different type parameters.
-
-trait A: PartialEq<Foo> + PartialEq<Bar> { }
-
-struct Foo;
-struct Bar;
-
-struct Aimpl;
-
-impl PartialEq<Foo> for Aimpl {
- fn eq(&self, _rhs: &Foo) -> bool {
- true
- }
-}
-
-impl PartialEq<Bar> for Aimpl {
- fn eq(&self, _rhs: &Bar) -> bool {
- false
- }
-}
-
-impl A for Aimpl { }
-
-fn main() {
- let a = &Aimpl as &dyn A;
-
- assert!(*a == Foo);
-}