error: reached the recursion limit while instantiating `A::matches::$CLOSURE`
  --> $DIR/issue-22638.rs:56:9
   |
LL |         a.matches(f)
   |         ^^^^^^^^^^^^
   |
note: `A::matches` defined here
  --> $DIR/issue-22638.rs:15:5
   |
LL |     pub fn matches<F: Fn()>(&self, f: &F) {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   = note: the full type name has been written to '$TEST_BUILD_DIR/issues/issue-22638.polonius/issue-22638.long-type.txt'

error: aborting due to previous error