chore: add test case for type with generic
This commit is contained in:
parent
e4cfe038ad
commit
cb6984217f
@ -7,10 +7,24 @@ impl A {
|
|||||||
fn test(_a: Self, _b: i32) {}
|
fn test(_a: Self, _b: i32) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct B<T> {
|
||||||
|
_b: T
|
||||||
|
}
|
||||||
|
impl<T> B<T> {
|
||||||
|
fn hello(_a: i32) {}
|
||||||
|
fn test(_a: Self, _b: i32) {}
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let _a = A {};
|
let _a = A {};
|
||||||
A::hello(1);
|
A::hello(1);
|
||||||
//~^ ERROR no method named `hello` found
|
//~^ ERROR no method named `hello` found
|
||||||
A::test(_a, 1);
|
A::test(_a, 1);
|
||||||
//~^ ERROR no method named `test` found
|
//~^ ERROR no method named `test` found
|
||||||
|
|
||||||
|
let _b = B {_b: ""};
|
||||||
|
B::<&str>::hello(1);
|
||||||
|
//~^ ERROR no method named `hello` found
|
||||||
|
B::<&str>::test(_b, 1);
|
||||||
|
//~^ ERROR no method named `test` found
|
||||||
}
|
}
|
||||||
|
@ -7,10 +7,24 @@ fn hello(_a: i32) {}
|
|||||||
fn test(_a: Self, _b: i32) {}
|
fn test(_a: Self, _b: i32) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct B<T> {
|
||||||
|
_b: T
|
||||||
|
}
|
||||||
|
impl<T> B<T> {
|
||||||
|
fn hello(_a: i32) {}
|
||||||
|
fn test(_a: Self, _b: i32) {}
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let _a = A {};
|
let _a = A {};
|
||||||
_a.hello(1);
|
_a.hello(1);
|
||||||
//~^ ERROR no method named `hello` found
|
//~^ ERROR no method named `hello` found
|
||||||
_a.test(1);
|
_a.test(1);
|
||||||
//~^ ERROR no method named `test` found
|
//~^ ERROR no method named `test` found
|
||||||
|
|
||||||
|
let _b = B {_b: ""};
|
||||||
|
_b.hello(1);
|
||||||
|
//~^ ERROR no method named `hello` found
|
||||||
|
_b.test(1);
|
||||||
|
//~^ ERROR no method named `test` found
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
error[E0599]: no method named `hello` found for struct `A` in the current scope
|
error[E0599]: no method named `hello` found for struct `A` in the current scope
|
||||||
--> $DIR/suggest-assoc-fn-call-without-receiver.rs:12:8
|
--> $DIR/suggest-assoc-fn-call-without-receiver.rs:20:8
|
||||||
|
|
|
|
||||||
LL | struct A {}
|
LL | struct A {}
|
||||||
| -------- method `hello` not found for this struct
|
| -------- method `hello` not found for this struct
|
||||||
@ -18,7 +18,7 @@ LL | fn hello(_a: i32) {}
|
|||||||
| ^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error[E0599]: no method named `test` found for struct `A` in the current scope
|
error[E0599]: no method named `test` found for struct `A` in the current scope
|
||||||
--> $DIR/suggest-assoc-fn-call-without-receiver.rs:14:8
|
--> $DIR/suggest-assoc-fn-call-without-receiver.rs:22:8
|
||||||
|
|
|
|
||||||
LL | struct A {}
|
LL | struct A {}
|
||||||
| -------- method `test` not found for this struct
|
| -------- method `test` not found for this struct
|
||||||
@ -36,6 +36,44 @@ note: the candidate is defined in an impl for the type `A`
|
|||||||
LL | fn test(_a: Self, _b: i32) {}
|
LL | fn test(_a: Self, _b: i32) {}
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: aborting due to 2 previous errors
|
error[E0599]: no method named `hello` found for struct `B<&str>` in the current scope
|
||||||
|
--> $DIR/suggest-assoc-fn-call-without-receiver.rs:26:8
|
||||||
|
|
|
||||||
|
LL | struct B<T> {
|
||||||
|
| ----------- method `hello` not found for this struct
|
||||||
|
...
|
||||||
|
LL | _b.hello(1);
|
||||||
|
| ---^^^^^---
|
||||||
|
| | |
|
||||||
|
| | this is an associated function, not a method
|
||||||
|
| help: use associated function syntax instead: `B::<&str>::hello(1)`
|
||||||
|
|
|
||||||
|
= 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 `B<T>`
|
||||||
|
--> $DIR/suggest-assoc-fn-call-without-receiver.rs:14:5
|
||||||
|
|
|
||||||
|
LL | fn hello(_a: i32) {}
|
||||||
|
| ^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error[E0599]: no method named `test` found for struct `B<&str>` in the current scope
|
||||||
|
--> $DIR/suggest-assoc-fn-call-without-receiver.rs:28:8
|
||||||
|
|
|
||||||
|
LL | struct B<T> {
|
||||||
|
| ----------- method `test` not found for this struct
|
||||||
|
...
|
||||||
|
LL | _b.test(1);
|
||||||
|
| ---^^^^---
|
||||||
|
| | |
|
||||||
|
| | this is an associated function, not a method
|
||||||
|
| help: use associated function syntax instead: `B::<&str>::test(_b, 1)`
|
||||||
|
|
|
||||||
|
= 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 `B<T>`
|
||||||
|
--> $DIR/suggest-assoc-fn-call-without-receiver.rs:15:5
|
||||||
|
|
|
||||||
|
LL | fn test(_a: Self, _b: i32) {}
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: aborting due to 4 previous errors
|
||||||
|
|
||||||
For more information about this error, try `rustc --explain E0599`.
|
For more information about this error, try `rustc --explain E0599`.
|
||||||
|
Loading…
Reference in New Issue
Block a user