summaryrefslogtreecommitdiffstats
path: root/tests/ui/suggestions/late-bound-in-borrow-closure-sugg.stderr
blob: ee924522564a86b8d4b1be41e4ead27aa894cfb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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`.