Skip to content

Prevent crash on unpacking when tuple-returning overload is rejected by outer context - #19921

Closed
sterliakov wants to merge 2 commits into
python:masterfrom
sterliakov:bugfix/gh-19920-tuple-inference-crash
Closed

Prevent crash on unpacking when tuple-returning overload is rejected by outer context#19921
sterliakov wants to merge 2 commits into
python:masterfrom
sterliakov:bugfix/gh-19920-tuple-inference-crash

Conversation

@sterliakov

Copy link
Copy Markdown
Collaborator

Fixes #19920. The removed assert was incorrect as demonstrated by the referenced issue - using additional inference context may change overload resolution outcomes, so no reasonable assumptions can be made about the reinferred type

@sterliakov
sterliakov force-pushed the bugfix/gh-19920-tuple-inference-crash branch from ca1a2fc to 1bbdc0a Compare September 24, 2025 16:44
@github-actions

This comment has been minimized.

@sterliakov

Copy link
Copy Markdown
Collaborator Author

@hauntsaninja please don't merge this one - as @ilevkivskyi suggested in the linked ticket, this might not be the right thing to do, and maybe overload selection process should ignore the outer context entirely. I tried to implement that - but the result was rather unsatisfactory (#20047), this probably needs some deeper investigation.

@sterliakov sterliakov removed the upnext label Jan 18, 2026
@sterliakov
sterliakov marked this pull request as draft January 18, 2026 22:56
@hauntsaninja

Copy link
Copy Markdown
Collaborator

Ah, that comment makes sense

@github-actions

Copy link
Copy Markdown
Contributor

According to mypy_primer, this change doesn't affect type check results on a corpus of open source code. ✅

@ilevkivskyi

Copy link
Copy Markdown
Member

Btw I likely will not have time to work on this soon, sorry.

@ilevkivskyi

Copy link
Copy Markdown
Member

(This means if anyone wanted to try a solution along the lines I suggested, please go ahead! :-))

pull Bot pushed a commit to Mu-L/mypy that referenced this pull request Aug 10, 2026
Fixes python#21824
Fixes python#19920
Closes python#19921

Note that ilevkivskyi has a suggestion to change overload inference
here:
python#19920 (comment)

While that is right, it is a little separate, and I think it is okay to
remove the crash given that it now affects numpy and has been reported
in other contexts too. We just keep the originally inferred tuple
hauntsaninja added a commit that referenced this pull request Aug 15, 2026
Fixes #21824
Fixes #19920
Closes #19921

Note that ilevkivskyi has a suggestion to change overload inference
here:
#19920 (comment)

While that is right, it is a little separate, and I think it is okay to
remove the crash given that it now affects numpy and has been reported
in other contexts too. We just keep the originally inferred tuple
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mypy crashes on async tuple to tuple assignment

3 participants