mirror of
https://github.com/astral-sh/ruff
synced 2026-01-11 08:34:29 -05:00
Allow passing ParseOptions to inline tests (#16357)
## Summary
This PR adds support for a pragma-style header for inline parser tests
containing JSON-serialized `ParseOptions`. For example,
```python
# parse_options: { "target-version": "3.9" }
match 2:
case 1:
pass
```
The line must start with `# parse_options: ` and then the rest of the
(trimmed) line is deserialized into `ParseOptions` used for parsing the
the test.
## Test Plan
Existing inline tests, plus two new inline tests for
`match-before-py310`.
---------
Co-authored-by: Alex Waygood <alex.waygood@gmail.com>
This commit is contained in:
@@ -2265,6 +2265,18 @@ impl<'src> Parser<'src> {
|
||||
|
||||
let cases = self.parse_match_body();
|
||||
|
||||
// test_err match_before_py310
|
||||
// # parse_options: { "target-version": "3.9" }
|
||||
// match 2:
|
||||
// case 1:
|
||||
// pass
|
||||
|
||||
// test_ok match_after_py310
|
||||
// # parse_options: { "target-version": "3.10" }
|
||||
// match 2:
|
||||
// case 1:
|
||||
// pass
|
||||
|
||||
if self.options.target_version < PythonVersion::PY310 {
|
||||
self.unsupported_syntax_errors.push(UnsupportedSyntaxError {
|
||||
kind: UnsupportedSyntaxErrorKind::MatchBeforePy310,
|
||||
|
||||
Reference in New Issue
Block a user