Skip to content

Commit e52a96f

Browse files
committed
Expand TypeVarTuple default (PEP 696)
1 parent 7b2c78f commit e52a96f

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

mypy/expandtype.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,8 @@ def visit_unpack_type(self, t: UnpackType) -> Type:
277277
def expand_unpack(self, t: UnpackType) -> list[Type]:
278278
assert isinstance(t.type, TypeVarTupleType)
279279
repl = get_proper_type(self.variables.get(t.type.id, t.type))
280+
if isinstance(repl, UnpackType):
281+
repl = get_proper_type(repl.type)
280282
if isinstance(repl, TupleType):
281283
return repl.items
282284
elif (

test-data/unit/check-typevar-defaults.test

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -297,8 +297,8 @@ def func_c1(
297297
# reveal_type(a) # Revealed type is "__main__.ClassC1[builtins.int, builtins.str]" # TODO
298298
reveal_type(b) # N: Revealed type is "__main__.ClassC1[builtins.float]"
299299

300-
# k = ClassC1() # TODO
301-
# reveal_type(k) # Revealed type is "__main__.ClassC1[builtins.int, builtins.str]" # TODO
300+
k = ClassC1()
301+
reveal_type(k) # N: Revealed type is "__main__.ClassC1[builtins.int, builtins.str]"
302302
l = ClassC1[float]()
303303
reveal_type(l) # N: Revealed type is "__main__.ClassC1[builtins.float]"
304304

@@ -313,8 +313,8 @@ def func_c2(
313313
# reveal_type(b) # Revealed type is "__main__.ClassC2[builtins.int, Unpack[builtins.tuple[builtins.float, ...]]]" # TODO
314314
reveal_type(c) # N: Revealed type is "__main__.ClassC2[builtins.int]"
315315

316-
# k = ClassC2() # TODO
317-
# reveal_type(k) # Revealed type is "__main__.ClassC2[builtins.str, Unpack[builtins.tuple[builtins.float, ...]]]" # TODO
316+
k = ClassC2()
317+
reveal_type(k) # N: Revealed type is "__main__.ClassC2[builtins.str, Unpack[builtins.tuple[builtins.float, ...]]]"
318318
l = ClassC2[int]()
319319
# reveal_type(l) # Revealed type is "__main__.ClassC2[builtins.int, Unpack[builtins.tuple[builtins.float, ...]]]" # TODO
320320
m = ClassC2[int, Unpack[Tuple[()]]]()
@@ -331,8 +331,8 @@ def func_c3(
331331
reveal_type(b) # N: Revealed type is "__main__.ClassC3[builtins.int]"
332332
reveal_type(c) # N: Revealed type is "__main__.ClassC3[builtins.int, builtins.float]"
333333

334-
# k = ClassC3() # TODO
335-
# reveal_type(k) # Revealed type is "__main__.ClassC3[builtins.str]" # TODO
334+
k = ClassC3()
335+
reveal_type(k) # N: Revealed type is "__main__.ClassC3[builtins.str]"
336336
l = ClassC3[int]()
337337
reveal_type(l) # N: Revealed type is "__main__.ClassC3[builtins.int]"
338338
m = ClassC3[int, Unpack[Tuple[float]]]()

0 commit comments

Comments
 (0)