rust/tests/ui/methods/rigid-alias-bound-is-not-inherent-3.rs

27 lines
458 B
Rust

use std::ops::Deref;
trait Trait1 {
fn call_me(&self) {}
}
impl<T> Trait1 for T {}
trait Trait2 {
fn call_me(&self) {}
}
impl<T> Trait2 for T {}
pub fn foo<T, U>(x: T)
where
T: Deref<Target = U>,
U: Trait1,
{
// This should be ambiguous. The fact that there's an inherent where-bound
// candidate for `U` should not impact the candidates for `T`
x.call_me();
//~^ ERROR multiple applicable items in scope
}
fn main() {}