Simplify label inference processor
TL;DR
- New version of the label inference processor (see it here).
- To test that the changes are working, the specs weren't changed until the last commit.
Context
I found the label inference processor very hard to understand, and to extend (I need to extend it as part of #973 (closed)). I worked on it for some time, couldn't make it go where I wanted, and I then thought about partially rewriting it.
To follow Kent Beck's advice: "make the change easy, then make the easy change".
I did a time-bound effort to come up with another, hopefully simpler version that would pass the original specs.
What's in this MR?
Introduce another logic for the label inference processor, passing the original specs (see it here).
Expected impact & dry-runs
The specs are good enough so that I can consider this a proper refactoring.
Edited by David Dieulivol