I was wondering if there is any objection to removing the 2-element minimum on the eachOf, anyOf and allOf matchers.
It is frustrating when playing with matchers to have to edit significant amounts of code to be able to temporarily go from 2 to 1 matcher inside an any- or allOf matcher.
One of the reasons we added the minimum was because these nodes added overhead to the matching that was not unnecessary when they only had a single node.
On the current implementation we could actually get rid of the node completely for the one argument calls.
I would be ok with removing the lower bound.
Even if it still did add overhead, it seems perfectly reasonable, from a user’s perspective (namely mine), that if I introduce unnecessary narrowing matchers to my chain that there may be a performance penalty.
The ability to do the following easily outweighs any performance issues for me:
anyOf (
/* hasName(“…”), */
hasName(“…”)
)
though C++ not allowing trailing commas makes this not quite as great.
However, without help, I would not be able to put forward a patch with anything more than simply removing the minimums.
Would this be acceptable or would someone be able to point me at what it would take to do it the “smart way” in less time than it would take them to make the change themselves?