Remove exception-handler lexing from unused-bound-exception fix (#5851)

## Summary

The motivation here is that it will make this rule easier to rewrite as
a deferred check. Right now, we can't run this rule in the deferred
phase, because it depends on the `except_handler` to power its autofix.
Instead of lexing the `except_handler`, we can use the `SimpleTokenizer`
from the formatter, and just lex forwards and backwards.

For context, this rule detects the unused `e` in:

```python
try:
  pass
except ValueError as e:
  pass
```
This commit is contained in:
Charlie Marsh 2023-07-18 14:27:46 -04:00 committed by GitHub
parent 41da52a61b
commit 4204fc002d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
32 changed files with 125 additions and 112 deletions

View file

@ -1,218 +0,0 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokenize_reverse()
---
[
Token {
kind: RParen,
range: 52..53,
},
Token {
kind: Other,
range: 51..52,
},
Token {
kind: Bogus,
range: 50..51,
},
Token {
kind: Bogus,
range: 49..50,
},
Token {
kind: Bogus,
range: 48..49,
},
Token {
kind: Bogus,
range: 47..48,
},
Token {
kind: Bogus,
range: 46..47,
},
Token {
kind: Bogus,
range: 45..46,
},
Token {
kind: Bogus,
range: 44..45,
},
Token {
kind: Bogus,
range: 43..44,
},
Token {
kind: Bogus,
range: 42..43,
},
Token {
kind: Bogus,
range: 41..42,
},
Token {
kind: Bogus,
range: 40..41,
},
Token {
kind: Bogus,
range: 39..40,
},
Token {
kind: Bogus,
range: 38..39,
},
Token {
kind: Bogus,
range: 37..38,
},
Token {
kind: Bogus,
range: 36..37,
},
Token {
kind: Bogus,
range: 35..36,
},
Token {
kind: Bogus,
range: 34..35,
},
Token {
kind: Bogus,
range: 33..34,
},
Token {
kind: Bogus,
range: 32..33,
},
Token {
kind: Bogus,
range: 31..32,
},
Token {
kind: Bogus,
range: 30..31,
},
Token {
kind: Bogus,
range: 29..30,
},
Token {
kind: Bogus,
range: 28..29,
},
Token {
kind: Bogus,
range: 27..28,
},
Token {
kind: Bogus,
range: 26..27,
},
Token {
kind: Bogus,
range: 25..26,
},
Token {
kind: Bogus,
range: 24..25,
},
Token {
kind: Bogus,
range: 23..24,
},
Token {
kind: Bogus,
range: 22..23,
},
Token {
kind: Bogus,
range: 21..22,
},
Token {
kind: Bogus,
range: 20..21,
},
Token {
kind: Bogus,
range: 19..20,
},
Token {
kind: Bogus,
range: 18..19,
},
Token {
kind: Bogus,
range: 17..18,
},
Token {
kind: Bogus,
range: 16..17,
},
Token {
kind: Bogus,
range: 15..16,
},
Token {
kind: Bogus,
range: 14..15,
},
Token {
kind: Bogus,
range: 13..14,
},
Token {
kind: Bogus,
range: 12..13,
},
Token {
kind: Bogus,
range: 11..12,
},
Token {
kind: Bogus,
range: 10..11,
},
Token {
kind: Bogus,
range: 9..10,
},
Token {
kind: Bogus,
range: 8..9,
},
Token {
kind: Bogus,
range: 7..8,
},
Token {
kind: Bogus,
range: 6..7,
},
Token {
kind: Bogus,
range: 5..6,
},
Token {
kind: Bogus,
range: 4..5,
},
Token {
kind: Bogus,
range: 3..4,
},
Token {
kind: Bogus,
range: 2..3,
},
Token {
kind: Bogus,
range: 1..2,
},
Token {
kind: Bogus,
range: 0..1,
},
]

View file

@ -1,10 +0,0 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokens()
---
[
Token {
kind: Other,
range: 0..2,
},
]

View file

@ -1,18 +0,0 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokens()
---
[
Token {
kind: Other,
range: 0..1,
},
Token {
kind: Bogus,
range: 1..2,
},
Token {
kind: Bogus,
range: 2..3,
},
]

View file

@ -1,126 +0,0 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokens()
---
[
Token {
kind: Comment,
range: 0..17,
},
Token {
kind: Newline,
range: 17..18,
},
Token {
kind: Whitespace,
range: 18..26,
},
Token {
kind: Other,
range: 26..27,
},
Token {
kind: Bogus,
range: 27..28,
},
Token {
kind: Bogus,
range: 28..29,
},
Token {
kind: Bogus,
range: 29..30,
},
Token {
kind: Bogus,
range: 30..31,
},
Token {
kind: Bogus,
range: 31..32,
},
Token {
kind: Bogus,
range: 32..33,
},
Token {
kind: Bogus,
range: 33..34,
},
Token {
kind: Bogus,
range: 34..35,
},
Token {
kind: Bogus,
range: 35..36,
},
Token {
kind: Bogus,
range: 36..37,
},
Token {
kind: Bogus,
range: 37..38,
},
Token {
kind: Bogus,
range: 38..39,
},
Token {
kind: Bogus,
range: 39..40,
},
Token {
kind: Bogus,
range: 40..41,
},
Token {
kind: Bogus,
range: 41..42,
},
Token {
kind: Bogus,
range: 42..43,
},
Token {
kind: Bogus,
range: 43..44,
},
Token {
kind: Bogus,
range: 44..45,
},
Token {
kind: Bogus,
range: 45..46,
},
Token {
kind: Bogus,
range: 46..47,
},
Token {
kind: Bogus,
range: 47..48,
},
Token {
kind: Bogus,
range: 48..49,
},
Token {
kind: Bogus,
range: 49..50,
},
Token {
kind: Bogus,
range: 50..51,
},
Token {
kind: Bogus,
range: 51..52,
},
Token {
kind: Bogus,
range: 52..53,
},
]

View file

@ -1,22 +0,0 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokens()
---
[
Token {
kind: Comma,
range: 0..1,
},
Token {
kind: Comma,
range: 1..2,
},
Token {
kind: Comma,
range: 2..3,
},
Token {
kind: Comma,
range: 3..4,
},
]

View file

@ -1,30 +0,0 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokens()
---
[
Token {
kind: LParen,
range: 0..1,
},
Token {
kind: Whitespace,
range: 1..2,
},
Token {
kind: Continuation,
range: 2..3,
},
Token {
kind: Newline,
range: 3..4,
},
Token {
kind: Whitespace,
range: 4..5,
},
Token {
kind: RParen,
range: 5..6,
},
]

View file

@ -1,34 +0,0 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokens()
---
[
Token {
kind: If,
range: 0..2,
},
Token {
kind: Whitespace,
range: 2..3,
},
Token {
kind: In,
range: 3..5,
},
Token {
kind: Whitespace,
range: 5..6,
},
Token {
kind: Else,
range: 6..10,
},
Token {
kind: Whitespace,
range: 10..11,
},
Token {
kind: Match,
range: 11..16,
},
]

View file

@ -1,30 +0,0 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokens()
---
[
Token {
kind: LParen,
range: 0..1,
},
Token {
kind: LBracket,
range: 1..2,
},
Token {
kind: LBrace,
range: 2..3,
},
Token {
kind: RBrace,
range: 3..4,
},
Token {
kind: RBracket,
range: 4..5,
},
Token {
kind: RParen,
range: 5..6,
},
]

View file

@ -1,42 +0,0 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokens()
---
[
Token {
kind: Whitespace,
range: 0..1,
},
Token {
kind: Comment,
range: 1..30,
},
Token {
kind: Newline,
range: 30..31,
},
Token {
kind: Whitespace,
range: 31..39,
},
Token {
kind: Comment,
range: 39..77,
},
Token {
kind: Newline,
range: 77..78,
},
Token {
kind: Whitespace,
range: 78..86,
},
Token {
kind: Comma,
range: 86..87,
},
Token {
kind: Slash,
range: 87..88,
},
]

View file

@ -1,18 +0,0 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokens()
---
[
Token {
kind: RParen,
range: 14..15,
},
Token {
kind: Whitespace,
range: 15..16,
},
Token {
kind: Comment,
range: 16..25,
},
]

View file

@ -1,22 +0,0 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokens()
---
[
Token {
kind: Comment,
range: 0..9,
},
Token {
kind: Newline,
range: 9..10,
},
Token {
kind: Whitespace,
range: 10..14,
},
Token {
kind: Comment,
range: 14..23,
},
]

View file

@ -1,10 +0,0 @@
---
source: crates/ruff_python_formatter/src/trivia.rs
expression: test_case.tokens()
---
[
Token {
kind: Other,
range: 0..6,
},
]