-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
Add flag to warn about unreachable branches and exprs #7050
Merged
Commits on Jun 24, 2019
-
Add flag to warn about unreachable branches and exprs
This diff adds a `--disallow-inferred-unreachable` flag that reports an error if: 1. Any branch is inferred to be unreachable 2. Any subexpression in boolean expressions, inline if statements, and list/set/generator/dict comprehensions are always unreachable or redundant. This only takes into account the results of *type* analysis. We do not report errors for branches that are inferred to be unreachable in the semantic analysis phase (e.g. due to `sys.platform` checks and the like). Those checks are all intentional/deliberately flag certain branches as unreachable, so error messages would be annoying in those cases. A few additional notes: 1. I didn't spend a huge amount of time trying to come up with error messages. They could probably do with some polishing/rewording. 2. I thought about enabling this flag for default with mypy, but unfortunately that ended up producing ~40 to 50 (apparently legitimate) error messages. About a fourth of them were due to runtime checks checking to see if some type is None (despite not being declared to be Optional), about a fourth seemed to be due to mypy not quite understanding how to handle things like traits and Bogus[...], and about a fourth seemed to be legitimately unnecessary checks we could safely remove. The final checks were a mixture of typeshed bugs and misc errors with the reachability checks. (e.g. see python#7048) 3. For these reasons, I decided against adding this flag to `--strict` and against documenting it yet. We'll probably need to flush out a few bugs in mypy first/get mypy to the state where we can at least honestly dogfood this. Resolves python#2395; partially addresses python#7008.
Configuration menu - View commit details
-
Copy full SHA for a5b3737 - Browse repository at this point
Copy the full SHA a5b3737View commit details
Commits on Jun 26, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 615f3b2 - Browse repository at this point
Copy the full SHA 615f3b2View commit details -
Configuration menu - View commit details
-
Copy full SHA for ce8c357 - Browse repository at this point
Copy the full SHA ce8c357View commit details -
Configuration menu - View commit details
-
Copy full SHA for 74663e8 - Browse repository at this point
Copy the full SHA 74663e8View commit details -
Configuration menu - View commit details
-
Copy full SHA for d16dd8e - Browse repository at this point
Copy the full SHA d16dd8eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0ccb367 - Browse repository at this point
Copy the full SHA 0ccb367View commit details -
Configuration menu - View commit details
-
Copy full SHA for 373c6ec - Browse repository at this point
Copy the full SHA 373c6ecView commit details
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.