Rollup merge of #104422 - compiler-errors:fix-suggest_associated_call_syntax, r=BoxyUwU
Fix suggest associated call syntax Fixes #104412
This commit is contained in:
commit
ce263b7350
6 changed files with 239 additions and 145 deletions
4
src/test/ui/suggestions/dont-suggest-ufcs-for-const.rs
Normal file
4
src/test/ui/suggestions/dont-suggest-ufcs-for-const.rs
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
fn main() {
|
||||
1_u32.MAX();
|
||||
//~^ ERROR no method named `MAX` found for type `u32` in the current scope
|
||||
}
|
||||
15
src/test/ui/suggestions/dont-suggest-ufcs-for-const.stderr
Normal file
15
src/test/ui/suggestions/dont-suggest-ufcs-for-const.stderr
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
error[E0599]: no method named `MAX` found for type `u32` in the current scope
|
||||
--> $DIR/dont-suggest-ufcs-for-const.rs:2:11
|
||||
|
|
||||
LL | 1_u32.MAX();
|
||||
| ------^^^--
|
||||
| | |
|
||||
| | this is an associated function, not a method
|
||||
| help: use associated function syntax instead: `u32::MAX()`
|
||||
|
|
||||
= note: found the following associated functions; to be used as methods, functions must have a `self` parameter
|
||||
= note: the candidate is defined in an impl for the type `u32`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0599`.
|
||||
15
src/test/ui/suggestions/suggest-assoc-fn-call-deref.fixed
Normal file
15
src/test/ui/suggestions/suggest-assoc-fn-call-deref.fixed
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
// run-rustfix
|
||||
|
||||
#![allow(unused)]
|
||||
|
||||
struct Foo<T>(T);
|
||||
|
||||
impl<T> Foo<T> {
|
||||
fn test() -> i32 { 1 }
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let x = Box::new(Foo(1i32));
|
||||
Foo::<i32>::test();
|
||||
//~^ ERROR no method named `test` found for struct `Box<Foo<i32>>` in the current scope
|
||||
}
|
||||
15
src/test/ui/suggestions/suggest-assoc-fn-call-deref.rs
Normal file
15
src/test/ui/suggestions/suggest-assoc-fn-call-deref.rs
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
// run-rustfix
|
||||
|
||||
#![allow(unused)]
|
||||
|
||||
struct Foo<T>(T);
|
||||
|
||||
impl<T> Foo<T> {
|
||||
fn test() -> i32 { 1 }
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let x = Box::new(Foo(1i32));
|
||||
x.test();
|
||||
//~^ ERROR no method named `test` found for struct `Box<Foo<i32>>` in the current scope
|
||||
}
|
||||
19
src/test/ui/suggestions/suggest-assoc-fn-call-deref.stderr
Normal file
19
src/test/ui/suggestions/suggest-assoc-fn-call-deref.stderr
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
error[E0599]: no method named `test` found for struct `Box<Foo<i32>>` in the current scope
|
||||
--> $DIR/suggest-assoc-fn-call-deref.rs:13:7
|
||||
|
|
||||
LL | x.test();
|
||||
| --^^^^--
|
||||
| | |
|
||||
| | this is an associated function, not a method
|
||||
| help: use associated function syntax instead: `Foo::<i32>::test()`
|
||||
|
|
||||
= note: found the following associated functions; to be used as methods, functions must have a `self` parameter
|
||||
note: the candidate is defined in an impl for the type `Foo<T>`
|
||||
--> $DIR/suggest-assoc-fn-call-deref.rs:8:5
|
||||
|
|
||||
LL | fn test() -> i32 { 1 }
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0599`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue