mirror of https://github.com/rust-lang/rust
32 lines
691 B
Rust
32 lines
691 B
Rust
// Test that the predicate printed in an unresolved method error prints the
|
|
// generics for a generic associated type.
|
|
|
|
trait X {
|
|
type Y<T>;
|
|
}
|
|
|
|
trait M { //~ NOTE
|
|
fn f(&self) {}
|
|
}
|
|
|
|
impl<T: X<Y<i32> = i32>> M for T {}
|
|
//~^ NOTE trait bound `<S as X>::Y<i32> = i32` was not satisfied
|
|
//~| NOTE
|
|
//~| NOTE
|
|
//~| NOTE
|
|
|
|
struct S;
|
|
//~^ NOTE method `f` not found for this struct because it doesn't satisfy `<S as X>::Y<i32> = i32` or `S: M`
|
|
|
|
impl X for S {
|
|
type Y<T> = bool;
|
|
}
|
|
|
|
fn f(a: S) {
|
|
a.f();
|
|
//~^ ERROR the method `f` exists for struct `S`, but its trait bounds were not satisfied
|
|
//~| NOTE method cannot be called on `S` due to unsatisfied trait bounds
|
|
}
|
|
|
|
fn main() {}
|