Short-circuit if
expression for always true/always false vars and MYPY/TYPE_CHECKING
#5965
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.
Always short-circuit in the if's expression, instead of only
short-circuiting for "ALWAYS_TRUE/FALSE" constants (e.g. sys.platform
checks) and not "MYPY_TRUE/FALSE" constants (e.g.
MYPY
)Make --always-true and --always-false map to ALWAYS_TRUE and
ALWAYS_FALSE, respectively, instead of MYPY_TRUE and MYPY_FALSE.
The only difference between the two is a change in import priority,
but semantically uses of "--always-true" are probably closer to
"this condition should be true at compile time and runtime" than
"this condition should be true at compile time but false at
runtime".
Fixes Small bug:
if
expression doesn't short circuit for --always-false/--always-true #5963