The previous implementation had a bug: it would lose track of the
"analyzed" status of files not within the current invocation's
dependency graph, causing it to keep stale analysis around in some
cases.
The new implementation is hopefully easier to follow, and although it
does a bunch of O(n^2) operations on lists of known packages, it
shouldn't matter much in the near future (they are still identified by
a FIXME comment for further attention).
The previous implementation had a bug: it would lose track of the "analyzed" status of files not within the current invocation's dependency graph, causing it to keep stale analysis around in some cases.
The new implementation is hopefully easier to follow, and although it does a bunch of O(n^2) operations on lists of known packages, it shouldn't matter much in the near future (they are still identified by a
FIXME
comment for further attention).Based on #383.