summaryrefslogtreecommitdiffstats
path: root/tests/ui/generic-associated-types/bugs/issue-88382.stderr
blob: 9b061528e3beb1aaae0e431f402a1bb4ceddce34 (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
error[E0631]: type mismatch in function arguments
  --> $DIR/issue-88382.rs:26:40
   |
LL |     do_something(SomeImplementation(), test);
   |     ------------                       ^^^^ expected due to this
   |     |
   |     required by a bound introduced by this call
...
LL | fn test<'a, I: Iterable>(_: &mut I::Iterator<'a>) {}
   | ------------------------------------------------- found signature defined here
   |
   = note: expected function signature `for<'a> fn(&'a mut std::iter::Empty<usize>) -> _`
              found function signature `for<'a, 'b> fn(&'b mut <_ as Iterable>::Iterator<'a>) -> _`
note: required by a bound in `do_something`
  --> $DIR/issue-88382.rs:20:48
   |
LL | fn do_something<I: Iterable>(i: I, mut f: impl for<'a> Fn(&mut I::Iterator<'a>)) {
   |                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `do_something`
help: consider wrapping the function in a closure
   |
LL |     do_something(SomeImplementation(), |arg0: &mut std::iter::Empty<usize>| test(/* &mut <_ as Iterable>::Iterator<'_> */));
   |                                        ++++++++++++++++++++++++++++++++++++     ++++++++++++++++++++++++++++++++++++++++++

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0631`.