Repository navigation
Fix mypy_mypyc crash caused by "complex" interaction - #6169
Merged
Merged
Conversation
The type of Num.n is `complex`, though it can in practice also be an `int` or a `float`, and we case on the actual type to determine which sort of mypy ast node to use. In #6114, promotions were disabled in `isinstance` checks, which caused mypy to decide that the `isinstance` checks for int and float won't match. Fix this by giving the value the type object instead of complex. Typeshed *does* actually annotate `n` as `Union[float, int, complex]`, but mypy simplifies that into `complex`. (It does *not* do this simplification for local variables with such an annotation; see issue #6168.)
Collaborator
Author
|
(mypy_mypyc is currently completely busted until this goes in.) |
gvanrossum
approved these changes
Jan 8, 2019
Collaborator
Author
|
Argh! There's still a failure left that causes some tests to fail. I've also opened #6170 for running mypyc in CI. (The way this snuck in was that I ran |
msullivan
added a commit
that referenced
this pull request
Jan 9, 2019
This is just a case I missed in #6169.
msullivan
added a commit
that referenced
this pull request
Jan 9, 2019
This is just a case I missed in #6169.
msullivan
added a commit
that referenced
this pull request
Jan 9, 2019
This is just a case I missed in #6169.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The type of Num.n is
complex, though it can in practice also be anintor afloat, and we case on the actual type to determine whichsort of mypy ast node to use.
In #6114, promotions were disabled in
isinstancechecks, whichcaused mypy to decide that the
isinstancechecks for int and floatwon't match. Fix this by giving the value the type object instead of
complex.
Typeshed does actually annotate
nasUnion[float, int, complex],but mypy simplifies that into
complex. (It does not do thissimplification for local variables with such an annotation; see
issue #6168.)