Details
-
Task
-
Resolution: Unresolved
-
Major - P3
-
None
-
None
-
None
-
None
-
Query Execution
Description
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.