1 // Check that if we have multiple applicable projection bounds we pick one (for
2 // backwards compatibility reasons).
3 
4 // check-pass
5 use std::ops::Mul;
6 
7 trait A {
8     type V;
9     type U: Mul<Self::V, Output = ()> + Mul<(), Output = ()>;
10 }
11 
g<T: A<V = ()>>()12 fn g<T: A<V = ()>>() {
13     let y: <T::U as Mul<()>>::Output = ();
14 }
15 
main()16 fn main() {}
17