Skip to content

Correctly support self types in callable ClassVar#14115

Merged
JukkaL merged 1 commit intopython:masterfrom
ilevkivskyi:self-callable-classvar
Nov 17, 2022
Merged

Correctly support self types in callable ClassVar#14115
JukkaL merged 1 commit intopython:masterfrom
ilevkivskyi:self-callable-classvar

Conversation

@ilevkivskyi
Copy link
Copy Markdown
Member

Fixes #14108

This fixes both new and old style of working with self types. After all I fixed the new style by simply expanding self type, then bind_self() does its job, so effect on the instance will be the same.

I had two options fixing this, other one (that I didn't go with) is making the callable generic in new style, if it appears in ClassVar. This however has two downsides: implementation is tricky, and this adds and edge case to an existing edge case. So instead I choose internal consistency within the new style, rather than similarity between old and new style.

@github-actions
Copy link
Copy Markdown
Contributor

According to mypy_primer, this change has no effect on the checked open source code. 🤖🎉

@JukkaL JukkaL merged commit 401798f into python:master Nov 17, 2022
@ilevkivskyi ilevkivskyi deleted the self-callable-classvar branch November 17, 2022 23:01
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.

Self doesn't work when appears in a callable directly nested in ClassVar

2 participants