ruff/crates
Andrew Gallant 6a1fa4778f
Reject more syntactically invalid Python programs (#8524)
## Summary

This commit adds some additional error checking to the parser such that
assignments that are invalid syntax are rejected. This covers the
obvious cases like `5 = 3` and some not so obvious cases like `x + y =
42`.

This does add an additional recursive call to the parser for the cases
handling assignments. I had initially been concerned about doing this,
but `set_context` is already doing recursion during assignments, so I
didn't feel as though this was changing any fundamental performance
characteristics of the parser. (Also, in practice, I would expect any
such recursion here to be quite shallow since the recursion is done on
the target of an assignment. Such things are rarely nested much in
practice.)

Fixes #6895

## Test Plan

I've added unit tests covering every case that is detected as invalid on
an `Expr`.
2023-11-07 07:16:06 -05:00
..
flake8_to_ruff Bump version to v0.1.4 (#8477) 2023-11-03 14:52:56 -04:00
ruff_benchmark Bump codspeed-criterion-compat from 2.3.0 to 2.3.1 (#8508) 2023-11-06 14:32:40 +00:00
ruff_cache Introduce FormatterSettings (#7545) 2023-09-21 08:01:24 +02:00
ruff_cli Bump version to v0.1.4 (#8477) 2023-11-03 14:52:56 -04:00
ruff_dev Added tabs for configuration files in the documentation (#8480) 2023-11-05 17:10:29 +00:00
ruff_diagnostics Add a Fix constructor that takes Applicability as an argument (#8514) 2023-11-06 09:45:10 -05:00
ruff_formatter Rust 1.73 (#8007) 2023-10-23 02:12:25 +00:00
ruff_index Add unreachable code rule (#5384) 2023-07-04 14:27:23 +00:00
ruff_linter Reject more syntactically invalid Python programs (#8524) 2023-11-07 07:16:06 -05:00
ruff_macros Add #[automatically_derived] to derived impls (#8080) 2023-10-20 00:12:27 +00:00
ruff_notebook Detect and ignore Jupyter automagics (#8398) 2023-11-03 01:14:10 +00:00
ruff_python_ast [TRIO] Add TRIO105: SyncTrioCall (#8490) 2023-11-05 19:56:10 +00:00
ruff_python_codegen Split Constant to individual literal nodes (#8064) 2023-10-30 12:13:23 +05:30
ruff_python_formatter Reject more syntactically invalid Python programs (#8524) 2023-11-07 07:16:06 -05:00
ruff_python_index Consider unterminated f-strings in FStringRanges (#8154) 2023-10-27 11:11:44 +00:00
ruff_python_literal Implement our own small-integer optimization (#7584) 2023-09-25 15:13:21 +00:00
ruff_python_parser Reject more syntactically invalid Python programs (#8524) 2023-11-07 07:16:06 -05:00
ruff_python_resolver Bump tempfile from 3.8.0 to 3.8.1 (#8345) 2023-10-30 09:06:48 +00:00
ruff_python_semantic Add dedicated method to find typed binding (#8517) 2023-11-06 11:25:32 -05:00
ruff_python_stdlib Improvements to RUF015 (#7848) 2023-10-08 14:49:45 +00:00
ruff_python_trivia Preserve trailing statement semicolons when using fmt: skip (#8273) 2023-10-30 00:07:14 +00:00
ruff_shrinking Bump version to v0.1.4 (#8477) 2023-11-03 14:52:56 -04:00
ruff_source_file Add cell field to JSON output format (#7664) 2023-10-13 01:06:02 +00:00
ruff_text_size Unify line size settings between ruff and the formatter (#6873) 2023-08-28 06:44:56 +00:00
ruff_wasm Bump serde-wasm-bindgen from 0.6.0 to 0.6.1 (#8507) 2023-11-06 09:19:30 -05:00
ruff_workspace Recommend project.requires-python over target-version (#8513) 2023-11-06 14:35:32 +00:00