Previously, an entity would be discarded if it had any location in a changed
file. This caused issues for entities with multiple declaration entries, such
as extern variables declared in one file and defined in another.
For example, given:
// a.c (changed) // b.c (unchanged)
extern int x; int x;
The variable `x` should be preserved because it has a location in the
unchanged file b.c, even though it also has a location in the changed file a.c.