mirror of
https://github.com/rust-lang/rust.git
synced 2025-09-28 21:55:31 +00:00
27 lines
458 B
Rust
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() {}
|