mirror of https://github.com/astral-sh/ruff
<!-- Thank you for contributing to Ruff! To help us out with reviewing, please consider the following: - Does this pull request include a summary of the change? (See below.) - Does this pull request include a descriptive title? - Does this pull request include references to any relevant issues? --> ## Summary Our `SoftKeywordTokenizer` only respected soft keywords in compound statement positions -- for example, at the start of a logical line: ```python type X = int ``` However, type aliases can also appear in simple statement positions, like: ```python class Class: type X = int ``` (Note that `match` and `case` are _not_ valid keywords in such positions.) This PR upgrades the tokenizer to track both kinds of valid positions. Closes https://github.com/astral-sh/ruff/issues/8900. Closes https://github.com/astral-sh/ruff/issues/8899. ## Test Plan `cargo test` |
||
|---|---|---|
| .. | ||
| lexer | ||
| snapshots | ||
| context.rs | ||
| function.rs | ||
| invalid.rs | ||
| lexer.rs | ||
| lib.rs | ||
| parser.rs | ||
| python.lalrpop | ||
| python.rs | ||
| soft_keywords.rs | ||
| string.rs | ||
| token.rs | ||
| typing.rs | ||