db0131dd

Created Started Cancelled

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Root weeder at the tests rather than at a list of the API

The roots were the API written out, twenty regexes copied from the export
lists, which is a list that drifts from what it copies.  With includeTests on
the roots are the test suites, everything the tests reach counts as reached,
and an export no test reaches is reported.

For a library that is the root set worth having: the API is what has to stay
alive, and "no test reaches this" is the report worth getting rather than a
root quietly added to stop it.

It found genDurationVariable immediately, which was added when
DurationVariable came out of genValid and never called by anything.  The hand
written roots had been hiding it.  Gone.

The trade is that dead code inside the test suites is no longer caught.
GitHub