Maintain invariant that a specialization can only exist if there is only one support bit
commit241b72351afbb534805b87f92725e08f82f48dfb
authorKaty Voor <voork@fb.com>
Tue, 19 Jul 2022 22:11:04 +0000 (19 15:11 -0700)
committerFacebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
Tue, 19 Jul 2022 22:11:04 +0000 (19 15:11 -0700)
tree05572cf69a0af655ef6eb9baccb35b999df723ba
parentf0f06750c6d152f3eead1893323597fe261f6367
Maintain invariant that a specialization can only exist if there is only one support bit

Summary: When we loosen_emptiness(), we need to ensure we are not adding new support bits to a type that already has a specialization for another support bit.

Reviewed By: jano

Differential Revision: D37963890

fbshipit-source-id: 01f6e15bf1c0695d6651a02c770fc274f0b9101f
hphp/hhbbc/test/type-system.cpp
hphp/hhbbc/type-system.cpp
hphp/test/slow/hhbbc/union-empty-dict.php [new file with mode: 0644]
hphp/test/slow/hhbbc/union-empty-dict.php.expect [new file with mode: 0644]