Why do I get mypy errors when comparing values of type ` TypeVar('T', bound=int|float)`?

Viewed 90

I get unexpected mypy errors when using builtin binary operations on variables of type TypeVar('T', bound=int|float).

Here is a minimal example:

import typing

T = typing.TypeVar('T', bound=typing.Union[int, float])

def less_than(x: T, y: T) -> bool:
    return x < y

mypy gives me the following error:

test.py:6: error: Unsupported operand types for < ("int" and "T")

Why do I get that error?

On a side note: mypy doesn't complain if I use T = typing.Union[int, float] or T = typing.TypeVar('T', int, float).

0 Answers
Related