[ty] Add missing bitwise-operator branches for boolean and integer arithmetic (#17949)

This commit is contained in:
Alex Waygood
2025-05-08 14:10:35 +01:00
committed by GitHub
parent aac862822f
commit 67cd94ed64
3 changed files with 35 additions and 0 deletions

View File

@@ -45,6 +45,18 @@ reveal_type(a | a) # revealed: Literal[True]
reveal_type(a | b) # revealed: Literal[True]
reveal_type(b | a) # revealed: Literal[True]
reveal_type(b | b) # revealed: Literal[False]
# bitwise AND
reveal_type(a & a) # revealed: Literal[True]
reveal_type(a & b) # revealed: Literal[False]
reveal_type(b & a) # revealed: Literal[False]
reveal_type(b & b) # revealed: Literal[False]
# bitwise XOR
reveal_type(a ^ a) # revealed: Literal[False]
reveal_type(a ^ b) # revealed: Literal[True]
reveal_type(b ^ a) # revealed: Literal[True]
reveal_type(b ^ b) # revealed: Literal[False]
```
## Arithmetic with a variable

View File

@@ -9,6 +9,9 @@ reveal_type(3 * -1) # revealed: Literal[-3]
reveal_type(-3 // 3) # revealed: Literal[-1]
reveal_type(-3 / 3) # revealed: float
reveal_type(5 % 3) # revealed: Literal[2]
reveal_type(3 | 4) # revealed: Literal[7]
reveal_type(5 & 6) # revealed: Literal[4]
reveal_type(7 ^ 2) # revealed: Literal[5]
# error: [unsupported-operator] "Operator `+` is unsupported between objects of type `Literal[2]` and `Literal["f"]`"
reveal_type(2 + "f") # revealed: Unknown