Currently the datalog selects a singular type for a node by ruling out other types. ie. The pointer constraints consist of a store and load suggesting it is a pointer then making sure there arent field rules, in rules, out rules, or add rules. Instead, we should collect every possible type for a node. If there is a single type we get a single type, otherwise we introduce a union.
Currently the datalog selects a singular type for a node by ruling out other types. ie. The pointer constraints consist of a store and load suggesting it is a pointer then making sure there arent field rules, in rules, out rules, or add rules. Instead, we should collect every possible type for a node. If there is a single type we get a single type, otherwise we introduce a union.