-
-
Notifications
You must be signed in to change notification settings - Fork 3k
8000
(🐞)
KotlinIsland
changed the title
(🐞)
(🐞) Nov 26, 2023
(🐞) Protocol
compatibility of Unpack
ed TypeVarTuple
is broken when signature is not a trivial *args: Any
#16567
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Labels
Comments
This was referenced Nov 26, 2023
Protocol
compatibility of Unpack
ed TypeVarTuple
is broken when signature is not a trivial ARG_STAR
Protocol
compatibility of Unpack
ed TypeVarTuple
is broken when signature is not a trivial *args: Any
ericmarkmartin
pushed a commit
to ericmarkmartin/mypy
that referenced
this issue
Feb 19, 2025
Fixes python#18407 Fixes python#17184 Fixes python#16567 There are three things here: * Allow erased variadic callables with non-empty prefix to be supertypes of the non-erased ones. This relaxes a bit callable subtyping in general, but IMO this makes sense, people who want to be strict should simply use `*args: object` instead. An alternative would be to track erased variadic callables explicitly, which is ugly and fragile. * Add important missing case in `subtypes.py` for `*Ts` w.r.t. `Any`/`object` that handles similar situations for variadic instances and tuples (here however there is nothing special about `Any` vs `object`). * I also fix inconsistency in join uncovered by the above two. The changes in `expandtype.py` are no-op, I just noticed potential danger while playing with this, so wanted to highlight it with comments for the future.
ericmarkmartin
pushed a commit
to ericmarkmartin/mypy
that referenced
this issue
Feb 19, 2025
Fixes python#18407 Fixes python#17184 Fixes python#16567 There are three things here: * Allow erased variadic callables with non-empty prefix to be supertypes of the non-erased ones. This relaxes a bit callable subtyping in general, but IMO this makes sense, people who want to be strict should simply use `*args: object` instead. An alternative would be to track erased variadic callables explicitly, which is ugly and fragile. * Add important missing case in `subtypes.py` for `*Ts` w.r.t. `Any`/`object` that handles similar situations for variadic instances and tuples (here however there is nothing special about `Any` vs `object`). * I also fix inconsistency in join uncovered by the above two. The changes in `expandtype.py` are no-op, I just noticed potential danger while playing with this, so wanted to highlight it with comments for the future.
x612skm
pushed a commit
to x612skm/mypy-dev
that referenced
this issue
Feb 24, 2025
Fixes python#18407 Fixes python#17184 Fixes python#16567 There are three things here: * Allow erased variadic callables with non-empty prefix to be supertypes of the non-erased ones. This relaxes a bit callable subtyping in general, but IMO this makes sense, people who want to be strict should simply use `*args: object` instead. An alternative would be to track erased variadic callables explicitly, which is ugly and fragile. * Add important missing case in `subtypes.py` for `*Ts` w.r.t. `Any`/`object` that handles similar situations for variadic instances and tuples (here however there is nothing special about `Any` vs `object`). * I also fix inconsistency in join uncovered by the above two. The changes in `expandtype.py` are no-op, I just noticed potential danger while playing with this, so wanted to highlight it with comments for the future.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
I believe this is caused by:
mypy/mypy/subtypes.py
Lines 1597 to 1607 in 1200d1d
@ilevkivskyi
The text was updated successfully, but these errors were encountered: