| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
According to mypy_primer, this change doesn't affect type check results on a corpus of open source code. ✅ |
Sorry, something went wrong.
| if isinstance(expanded, TypeVarType): | ||
| expanded.default = expanded.default.accept(self) | ||
| else: | ||
| repl = expanded |
There was a problem hiding this comment.
maybe more readable if done the other way round?
expanded = repl.accept(self)
if not isinstance(expanded, TypeVarType):
repl = expanded
else:
expanded.default = expanded.default.accept(self)
Sorry, something went wrong.
- Fixes #19444. (added `testTypeVarDefaultsSwap`) - Fixes #19362 (added `testTypeVarDefaultsSwap2`) Changed the logic for recursion guards of `TypeVarType`: Instead of always substituting `repl = repl.accept(self)`, and situationally updating `repl.default = repl.default.accept(self)` if the result is a `TypeVarType`, we now always update `repl.default = repl.default.accept(self)` a priori and then only choose the expanded `repl.accept(self)` if the result is a concrete type. ## New Tests - `testTypeVarDefaultsSwap` (https://mypy-play.net/?mypy=1.17.0&python=3.12&gist=d5a025a31ae3c8b9e2a36f4738aa1991) - `testTypeVarDefaultsSwap2` (https://mypy-play.net/?mypy=1.17.0&python=3.12&gist=d3ed42c82f7144967c97d846c4c041ef) PS: closed earlier PRs #19447, since it contained debugging changes, and #19448 because it didn't solve #19362.
| Back | FazBrowse Home | New Git URL |
My idea is that we should only return the result of repl = repl.accept(self) if that result is no longer a TypeVarType, because if we are simply permuting the type variables, then this will be incorrect.