Compute static keys without subset transitive closure
Summary:
This diff is is a behaviour preserving redo of static key solving where instead of using the transitive closure of subsets to propagate static key constraints, it uses the adjacency map built from subsets. It also switches to using sets rather than lists.
This diff looks like it does strictly more work than before given that we have to keep the transitive closure of subsets around for other parts of the solver, however, soon I'll eliminate those in a similar manner.
Differential Revision:
D38490292
fbshipit-source-id:
82255da25b7c13d026b7ce7f8ef72297917d5b54