Details
-
Bug
-
Status: Patch Available
-
Critical
-
Resolution: Unresolved
-
1.2.1
-
None
Description
ExpressionBuilder applies `pushDownNot`, `foldMaybe`, `flatten`, `convertToCNF`, `flatten` and `buildLeafList` in order to form a non-normalized expression into a CNF expression with the unique leaves.
After an expression is converted to CNF, there might be more than one non-leaf nodes which are exactly the same object in the expression tree. If this happens, those non-leaf nodes will be visited more than once in `buildLeafList` function. As a result, a wrong ExpressionTree is generated.
My version is 1.2.1, but it seems that the higher versions are also affected