mirror of
https://github.com/github/codeql.git
synced 2025-12-24 04:36:35 +01:00
The key insight here is that `HC_FieldCons` and `HC_Array` are functionally determined by the things that arise in another recursive call. Lifting them to their own predicate, therefore, reduces nonlinearity and constrains the join order in a way that cannot be asymptotically bad -- and, indeed, makes quite a big difference in practice.