-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
Fix crash on ErasedType
and covers_at_runtime
#11924
Conversation
mypy/subtypes.py
Outdated
@@ -1167,6 +1167,14 @@ def restrict_subtype_away(t: Type, s: Type, *, ignore_promotions: bool = False) | |||
def covers_at_runtime(item: Type, supertype: Type, ignore_promotions: bool) -> bool: | |||
"""Will isinstance(item, supertype) always return True at runtime?""" | |||
item = get_proper_type(item) | |||
supertype = get_proper_type(supertype) | |||
if (isinstance(item, (ErasedType, DeletedType)) | |||
or isinstance(supertype, (ErasedType, DeletedType))): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm I wonder if ErasedType
instances can be nested inside unions, for example, and still cause a crash. Maybe erase_type
should just propagate erased types unmodified? I don't think that DeletedType
can be nested so it seems safe to handle here, though I'm not sure we need special casing for it. Did you find a use case where we encounter deleted types here, or is it here more as a defensive measure?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, good idea. I will try it!
Did you find a use case where we encounter deleted types here, or is it here more as a defensive measure?
More like a defensive programming. I will remove it, because it does not make much sense without ErasedType
.
Co-authored-by: Shantanu <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the updates!
Closes #11913 Refs #11273 Co-authored-by: Shantanu <[email protected]>
Closes python#11913 Refs python#11273 Co-authored-by: Shantanu <[email protected]>
Closes #11913
Refs #11273
CC @hauntsaninja