dfe32b6a43
When encountering a fn call that has a path to another fn being passed in, where an `Fn` impl is expected, and the arguments differ, suggest wrapping the argument with a closure with the appropriate arguments.
31 lines
1.3 KiB
Plaintext
31 lines
1.3 KiB
Plaintext
error[E0631]: type mismatch in closure arguments
|
|
--> $DIR/late-bound-in-borrow-closure-sugg.rs:26:24
|
|
|
|
|
LL | let closure = |trader : Trader| {
|
|
| ----------------- found signature defined here
|
|
...
|
|
LL | trader.set_closure(closure);
|
|
| ----------- ^^^^^^^ expected due to this
|
|
| |
|
|
| required by a bound introduced by this call
|
|
|
|
|
= note: expected closure signature `for<'a, 'b> fn(&'a mut Trader<'b>) -> _`
|
|
found closure signature `for<'a> fn(Trader<'a>) -> _`
|
|
note: required by a bound in `Trader::<'a>::set_closure`
|
|
--> $DIR/late-bound-in-borrow-closure-sugg.rs:15:50
|
|
|
|
|
LL | pub fn set_closure(&mut self, function: impl Fn(&mut Trader) + 'a) {
|
|
| ^^^^^^^^^^^^^^^ required by this bound in `Trader::<'a>::set_closure`
|
|
help: consider wrapping the function in a closure
|
|
|
|
|
LL | trader.set_closure(|arg0: &mut Trader<'_>| closure(*arg0));
|
|
| +++++++++++++++++++++++ +++++++
|
|
help: consider adjusting the signature so it borrows its argument
|
|
|
|
|
LL | let closure = |trader : &mut Trader| {
|
|
| ++++
|
|
|
|
error: aborting due to 1 previous error
|
|
|
|
For more information about this error, try `rustc --explain E0631`.
|