-
Notifications
You must be signed in to change notification settings - Fork 1.4k
[red-knot] Emit error if int/float/complex/bytes/boolean literals appear in type expressions outside typing.Literal[]
#16765
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
[red-knot] Emit error if int/float/complex/bytes/boolean literals appear in type expressions outside typing.Literal[]
#16765
Conversation
Expand `InvalidTypeExpression` enum to include number, bytes and boolean in type expression
I may be wrong, but it seems that byte literals are already handled here: ruff/crates/red_knot_python_semantic/src/types/infer.rs Lines 5445 to 5452 in 44aec36
And tested here: ruff/crates/red_knot_python_semantic/resources/mdtest/annotations/string.md Lines 88 to 89 in 44aec36
|
There's now a test failing at
I think this is expected though, as the generics are not implemented for SpecialForm i think? |
…and properly catch float 'literals' in type expresssions
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! I think you're mostly on the right track, but there's a few issues here to sort out
crates/red_knot_python_semantic/resources/mdtest/annotations/literal.md
Outdated
Show resolved
Hide resolved
crates/red_knot_python_semantic/resources/mdtest/annotations/invalid.md
Outdated
Show resolved
Hide resolved
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.
Looks close!
crates/red_knot_python_semantic/resources/mdtest/annotations/invalid.md
Outdated
Show resolved
Hide resolved
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.
looks great, thank you!
Co-authored-by: Alex Waygood <[email protected]>
Co-authored-by: Alex Waygood <[email protected]>
I'll wait until our CI's back up and running before merging this (everything's disabled at the moment due to #16768, we should get it up again tomorrow) |
Sounds good, thank you for the feedback! |
|
|
typing.Literal[]
ecfe1ac
to
74d6751
Compare
74d6751
to
9c36f0f
Compare
* main: (25 commits) [syntax-errors] Parenthesized context managers before Python 3.9 (#16523) [ci]: Disable wheel testing on `ppc64le` (#16793) [red-knot] Stabilize `negation_reverses_subtype_order` property test (#16801) [red-knot] Emit error if int/float/complex/bytes/boolean literals appear in type expressions outside `typing.Literal[]` (#16765) [ci] Use `git diff` instead of `changed-files` GH action (#16796) [syntax-errors] Improve error message and range for pre-PEP-614 decorator syntax errors (#16581) [`flake8-bandit`] Allow raw strings in `suspicious-mark-safe-usage` (`S308`) #16702 (#16770) [`refurb`] Avoid panicking `unwrap` in `verbose-decimal-constructor` (`FURB157`) (#16777) [red-knot] Add `--color` CLI option (#16758) [internal]: Upgrade salsa (#16794) Pin dependencies (#16791) [internal]: Update indirect dependencies (#16792) [ci]: Fixup codspeed upgrade (#16790) Update Rust crate compact_str to 0.9.0 (#16785) Update Rust crate clap to v4.5.32 (#16778) Update Rust crate codspeed-criterion-compat to v2.9.1 (#16784) Update Rust crate quote to v1.0.40 (#16782) Update Rust crate ordermap to v0.5.6 (#16781) Update cloudflare/wrangler-action action to v3.14.1 (#16783) Update Rust crate env_logger to v0.11.7 (#16779) ...
Expand
InvalidTypeExpression
enum to include number, bytes and boolean in type expressionSummary
Fixes #16532
Test Plan
Still need to look into where tests should be put for this improvement