-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
None
-
3
-
None
-
None
-
None
-
None
-
None
-
None
The expected behavior around non-boolean values for EPrimBinary and/or is unclear. Though higher-level logic can enforce that the expected values are boolean (for instance, by building an expression which type checks before calling into binary and/or), it's not clear what the behavior of the instructions themselves should be. For example, suppose we are executing EPrimBinary::and(17, true). Should we:
- Treat 17 as truthy and evaluate the constant true?
- Treat 17 as a non-bool value and return nothing?
- Expect undefined behavior?
This ticket tracks the work to not only decide on the "expected" semantics, but also to implement them.