Point at the span for the definition of ADTs internal to the current crate. Look at the leading char of the ident to determine whether we're expecting a likely fn or any of a fn, a tuple struct or a tuple variant. Turn fn `add_typo_suggestion` into a `Resolver` method.
32 lines
932 B
Rust
32 lines
932 B
Rust
struct Foo;
|
|
|
|
impl Foo {
|
|
fn bar(&self) {}
|
|
}
|
|
|
|
trait MyTrait {
|
|
fn trait_bar() {}
|
|
}
|
|
|
|
impl MyTrait for Foo {}
|
|
|
|
fn main() {
|
|
match 0u32 {
|
|
Foo::bar => {}
|
|
//~^ ERROR expected unit struct, unit variant or constant, found method `<Foo>::bar`
|
|
}
|
|
match 0u32 {
|
|
<Foo>::bar => {}
|
|
//~^ ERROR expected unit struct, unit variant or constant, found method `<Foo>::bar`
|
|
}
|
|
match 0u32 {
|
|
<Foo>::trait_bar => {}
|
|
//~^ ERROR expected unit struct, unit variant or constant, found method `<Foo>::trait_bar`
|
|
}
|
|
if let Foo::bar = 0u32 {}
|
|
//~^ ERROR expected unit struct, unit variant or constant, found method `<Foo>::bar`
|
|
if let <Foo>::bar = 0u32 {}
|
|
//~^ ERROR expected unit struct, unit variant or constant, found method `<Foo>::bar`
|
|
if let Foo::trait_bar = 0u32 {}
|
|
//~^ ERROR expected unit struct, unit variant or constant, found method `<Foo>::trait_bar`
|
|
}
|