@@ -512,6 +512,32 @@ def func_d3(
512
512
m = ClassD3[int, float]()
513
513
reveal_type(m) # N: Revealed type is "__main__.ClassD3[builtins.int, builtins.float]"
514
514
515
+ [case testTypeVarDefaultsClassRecursive2]
516
+ # flags: --disallow-any-generics
517
+ from typing import Generic, ParamSpec
518
+
519
+ P1 = ParamSpec("P1", default=[int, str])
520
+ P2 = ParamSpec("P2", default=P1)
521
+ P3 = ParamSpec("P3")
522
+
523
+ class ClassE1(Generic[P1, P2]): ...
524
+
525
+ def func_e1(
526
+ a: ClassE1,
527
+ b: ClassE1[[float]],
528
+ c: ClassE1[[float], [str]],
529
+ ) -> None:
530
+ reveal_type(a) # N: Revealed type is "__main__.ClassE1[[builtins.int, builtins.str], [builtins.int, builtins.str]]"
531
+ reveal_type(b) # N: Revealed type is "__main__.ClassE1[[builtins.float], [builtins.float]]"
532
+ reveal_type(c) # N: Revealed type is "__main__.ClassE1[[builtins.float], [builtins.str]]"
533
+
534
+ k = ClassE1()
535
+ # reveal_type(k) # Revealed type is "__main__.ClassE1[[builtins.int, builtins.str], [builtins.int, builtins.str]]" # TODO
536
+ l = ClassE1[[float]]()
537
+ reveal_type(l) # N: Revealed type is "__main__.ClassE1[[builtins.float], [builtins.float]]"
538
+ m = ClassE1[[float], [str]]()
539
+ reveal_type(m) # N: Revealed type is "__main__.ClassE1[[builtins.float], [builtins.str]]"
540
+
515
541
[case testTypeVarDefaultsClassRecursiveMultipleFiles]
516
542
# flags: --disallow-any-generics
517
543
from typing import Generic, TypeVar
0 commit comments