- Are you reporting a bug, or opening a feature request? Bug
- Please insert below the code you are checking with mypy,
or a mock-up repro if the source is private. We would appreciate
if you try to simplify your case to a minimal repro.
from __future__ import annotations
from typing import Union,Tuple
from typing_extensions import Literal
def does_not_work(arg: int) -> Union[Tuple[str], Tuple[Literal[1]]]:
if arg > 5:
return ("a",)
else:
return (1,) # Incompatible return value type (got "Tuple[int]", expected "Union[Tuple[str], Tuple[Literal[1]]]")
-
What is the actual behavior/output?
It fails to recognize that (1,) is a Tuple[Literal[1]]
-
What is the behavior/output you expect?
-
What are the versions of mypy and Python you are using?
Do you see the same issue after installing mypy from Git master? yes
-
What are the mypy flags you are using? (For example --strict-optional)
- strict-optional, python-version = 3.7, warn_return_any, --strict
I'm not sure if this is expected behaviour, or a limitation, but I thought I should point it out since I couldn't find any existing bugs for this.
or a mock-up repro if the source is private. We would appreciate
if you try to simplify your case to a minimal repro.
What is the actual behavior/output?
It fails to recognize that
(1,)is aTuple[Literal[1]]What is the behavior/output you expect?
What are the versions of mypy and Python you are using?
Do you see the same issue after installing mypy from Git master? yes
What are the mypy flags you are using? (For example --strict-optional)
I'm not sure if this is expected behaviour, or a limitation, but I thought I should point it out since I couldn't find any existing bugs for this.