Open
Description
Bug Report
When encountering an error due to using a comparison operator with None as one of the arguments, Mypy adjusts the direction of <
and >
operators in its messages based on the types involved so that it always reports None
as the second type (e.g. Unsupported operand types for
{comparisson operator direction}
("int" and "None")
). This becomes increasingly confusing when both variables in the comparison could potentially be a large number of types.
To reproduce
For the following code
1 < None
1 > None
None < 1
None > 1
Expected Behavior
file.py:1: error: Unsupported operand types for < ("int" and "None") [operator]
file.py:2: error: Unsupported operand types for > ("int" and "None") [operator]
file.py:3: error: Unsupported operand types for < ("None" and "int") [operator]
file.py:4: error: Unsupported operand types for > ("None" and "int") [operator]
Actual Behavior
file.py:1: error: Unsupported operand types for < ("int" and "None") [operator]
file.py:2: error: Unsupported operand types for > ("int" and "None") [operator]
file.py:3: error: Unsupported operand types for > ("int" and "None") [operator]
file.py:4: error: Unsupported operand types for < ("int" and "None") [operator]
Your Environment
- Mypy version used: 1.10
- Python version used: 3.12
Metadata
Metadata
Assignees
Labels
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity