Compute static keys without subset transitive closure
commit5fdd52e82b61199118d529f00391a6534c0c2758
authorMistral Orhan Jean-Pierre Contrastin <mojpc2@fb.com>
Tue, 16 Aug 2022 12:25:33 +0000 (16 05:25 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Tue, 16 Aug 2022 12:25:33 +0000 (16 05:25 -0700)
treedd4cb7bcb5fb746e2933e84ebb31d7e253a93ace
parent0cf15aafecd1905adbe7cd2886b29279ae3284f5
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
hphp/hack/src/shape_analysis/shape_analysis_solver.ml