type error go brrrrrrrr
This commit is contained in:
parent
7276a6a117
commit
abb9a9853b
4 changed files with 51 additions and 2 deletions
17
src/test/ui/compare-method/issue-90444.rs
Normal file
17
src/test/ui/compare-method/issue-90444.rs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
pub struct A;
|
||||
impl From<fn((), (), &())> for A {
|
||||
fn from(_: fn((), (), &mut ())) -> Self {
|
||||
//~^ error: method `from` has an incompatible type for trait
|
||||
loop {}
|
||||
}
|
||||
}
|
||||
|
||||
pub struct B;
|
||||
impl From<fn((), (), u32)> for B {
|
||||
fn from(_: fn((), (), u64)) -> Self {
|
||||
//~^ error: method `from` has an incompatible type for trait
|
||||
loop {}
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
27
src/test/ui/compare-method/issue-90444.stderr
Normal file
27
src/test/ui/compare-method/issue-90444.stderr
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
error[E0053]: method `from` has an incompatible type for trait
|
||||
--> $DIR/issue-90444.rs:3:16
|
||||
|
|
||||
LL | fn from(_: fn((), (), &mut ())) -> Self {
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
| |
|
||||
| types differ in mutability
|
||||
| help: change the parameter type to match the trait: `for<'r> fn((), (), &'r ())`
|
||||
|
|
||||
= note: expected fn pointer `fn(for<'r> fn((), (), &'r ())) -> A`
|
||||
found fn pointer `fn(for<'r> fn((), (), &'r mut ())) -> A`
|
||||
|
||||
error[E0053]: method `from` has an incompatible type for trait
|
||||
--> $DIR/issue-90444.rs:11:16
|
||||
|
|
||||
LL | fn from(_: fn((), (), u64)) -> Self {
|
||||
| ^^^^^^^^^^^^^^^
|
||||
| |
|
||||
| expected `u32`, found `u64`
|
||||
| help: change the parameter type to match the trait: `fn((), (), u32)`
|
||||
|
|
||||
= note: expected fn pointer `fn(fn((), (), u32)) -> B`
|
||||
found fn pointer `fn(fn((), (), u64)) -> B`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0053`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue