diff --git a/mypy/expandtype.py b/mypy/expandtype.py index 63e9b05e9d896..3bf45854b2a02 100644 --- a/mypy/expandtype.py +++ b/mypy/expandtype.py @@ -240,14 +240,6 @@ def visit_type_var(self, t: TypeVarType) -> Type: def visit_param_spec(self, t: ParamSpecType) -> Type: # Set prefix to something empty, so we don't duplicate it below. repl = self.variables.get(t.id, t.copy_modified(prefix=Parameters([], [], []))) - if isinstance(repl, ParamSpecType): - if (tvar_id := repl.id) in self.recursive_tvar_guard: - return self.recursive_tvar_guard[tvar_id] or repl - self.recursive_tvar_guard[tvar_id] = None - repl = repl.accept(self) - if isinstance(repl, ParamSpecType): - repl.default = repl.default.accept(self) - self.recursive_tvar_guard[tvar_id] = repl if isinstance(repl, ParamSpecType): return repl.copy_modified( flavor=t.flavor, diff --git a/test-data/unit/check-typevar-defaults.test b/test-data/unit/check-typevar-defaults.test index e16c734896f5a..541bd87ca2479 100644 --- a/test-data/unit/check-typevar-defaults.test +++ b/test-data/unit/check-typevar-defaults.test @@ -425,32 +425,6 @@ def func_d2( n = ClassD2[int, float, str]() reveal_type(n) # N: Revealed type is "__main__.ClassD2[builtins.int, builtins.float, builtins.str]" -[case testTypeVarDefaultsClassRecursive2] -# flags: --disallow-any-generics -from typing import Generic, ParamSpec - -P1 = ParamSpec("P1", default=[int, str]) -P2 = ParamSpec("P2", default=P1) -P3 = ParamSpec("P3") - -class ClassE1(Generic[P1, P2]): ... - -def func_e1( - a: ClassE1, - b: ClassE1[[float]], - c: ClassE1[[float], [str]], -) -> None: - reveal_type(a) # N: Revealed type is "__main__.ClassE1[[builtins.int, builtins.str], [builtins.int, builtins.str]]" - reveal_type(b) # N: Revealed type is "__main__.ClassE1[[builtins.float], [builtins.float]]" - reveal_type(c) # N: Revealed type is "__main__.ClassE1[[builtins.float], [builtins.str]]" - - k = ClassE1() - # reveal_type(k) # Revealed type is "__main__.ClassE1[[builtins.int, builtins.str], [builtins.int, builtins.str]]" # TODO - l = ClassE1[[float]]() - reveal_type(l) # N: Revealed type is "__main__.ClassE1[[builtins.float], [builtins.float]]" - m = ClassE1[[float], [str]]() - reveal_type(m) # N: Revealed type is "__main__.ClassE1[[builtins.float], [builtins.str]]" - [case testTypeVarDefaultsTypeAlias1] # flags: --disallow-any-generics from typing import Any, Dict, List, Tuple, TypeVar, Union