&dyn Fn before the matching lend rule existed. The binary then lowered about 29 files that did not compile (145 × E0277). Getting out took several build and lower-std rounds:
After that, step 2 cost the most: I followed it into the checker (a_lent_parameter matches by name) and only then found the fix lies outside my allowed files.
scope.function is "", so the code must use walk.keep_function.reach_edges_of and reach_runs_code live, and that methods of trait impls must be left out of the call graph.&dyn parameter passed on to a &impl Fn callee must be lent (&&dyn Fn is a sized Fn).check_fields.nika. Saying so would have let me stop at once.cargo check, the lower-std and build cycles, the probes (ping/pong, deep, nested lambda), the two new tests, tests/compiler --both-settings (397 passed), and the gate (green).
Tests: field should be checked for it.sed after the last commit. If the report was committed, the pushed copy differs from the file on disk.lowered/ lands together with every call-site rule it needs, before the first lower-std. It should also give the recovery steps (put your own lowered files back to HEAD by name, then build, lower, build, lower). Second best: the brief should mark each step’s likely files with “stop if the cause is in X”.