781e86477c
Fix #101351. When an associated type on a type parameter is used, and the type parameter isn't constrained by the correct trait, suggest the appropriate trait bound: ``` error[E0220]: associated type `Associated` not found for `T` --> file.rs:6:15 | 6 | field: T::Associated, | ^^^^^^^^^^ there is a similarly named associated type `Associated` in the trait `Foo` | help: consider restricting type parameter `T` | 5 | struct Generic<T: Foo> { | +++++ ``` When an associated type on a type parameter has a typo, suggest fixing it: ``` error[E0220]: associated type `Baa` not found for `T` --> $DIR/issue-55673.rs:9:8 | LL | T::Baa: std::fmt::Debug, | ^^^ there is a similarly named associated type `Bar` in the trait `Foo` | help: change the associated type name to use `Bar` from `Foo` | LL | T::Bar: std::fmt::Debug, | ~~~ ```
22 lines
304 B
Rust
22 lines
304 B
Rust
// run-rustfix
|
|
#![allow(dead_code)]
|
|
trait Foo {
|
|
type Bar;
|
|
}
|
|
|
|
fn foo<T: Foo>()
|
|
where
|
|
T::Bar: std::fmt::Debug,
|
|
//~^ ERROR associated type `Baa` not found for `T`
|
|
{
|
|
}
|
|
|
|
fn bar<T>()
|
|
where
|
|
T::Bar: std::fmt::Debug, T: Foo
|
|
//~^ ERROR associated type `Baa` not found for `T`
|
|
{
|
|
}
|
|
|
|
fn main() {}
|