Skip to content

Commit 9233143

Browse files
committed
Add a test case for #18520.
1 parent db7473e commit 9233143

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

test-data/unit/check-namedtuple.test

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1478,15 +1478,31 @@ def main(n: NT[T]) -> None:
14781478
[case testNamedTupleOverlappingCheck]
14791479
from typing import overload, NamedTuple, Union
14801480

1481-
class A(NamedTuple): ...
1481+
class AKey(NamedTuple):
1482+
k: str
14821483

1483-
class B(NamedTuple): ...
1484+
class A(NamedTuple):
1485+
key: AKey
1486+
1487+
1488+
class BKey(NamedTuple):
1489+
k: str
1490+
1491+
class B(NamedTuple):
1492+
key: BKey
14841493

14851494
@overload
14861495
def f(arg: A) -> A: ...
14871496
@overload
14881497
def f(arg: B) -> B: ...
14891498
def f(arg: Union[A, B]) -> Union[A, B]: ...
14901499

1500+
def g(x: Union[A, B, str]) -> Union[A, B, str]:
1501+
if isinstance(x, str):
1502+
return x
1503+
else:
1504+
reveal_type(x) # N: Revealed type is "Union[Tuple[Tuple[builtins.str, fallback=__main__.AKey], fallback=__main__.A], Tuple[Tuple[builtins.str, fallback=__main__.BKey], fallback=__main__.B]]"
1505+
return x._replace()
1506+
14911507
# no errors should be raised above.
14921508
[builtins fixtures/tuple.pyi]

0 commit comments

Comments
 (0)