-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Enable token-based rules on source with syntax errors
- Loading branch information
1 parent
17ce5bf
commit 4019ca4
Showing
30 changed files
with
1,028 additions
and
148 deletions.
There are no files selected for viewing
5 changes: 5 additions & 0 deletions
5
crates/ruff_linter/resources/test/fixtures/flake8_commas/COM81_syntax_error.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Check for `flake8-commas` violation for a file containing syntax errors. | ||
|
||
def foo[(param1='test', param2='test',): | ||
pass | ||
|
29 changes: 29 additions & 0 deletions
29
crates/ruff_linter/resources/test/fixtures/flake8_implicit_str_concat/ISC_syntax_error.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# The lexer doesn't emit a string token if it's unterminated | ||
"a" "b | ||
"a" "b" "c | ||
"a" """b | ||
c""" "d | ||
|
||
# For f-strings, the `FStringRanges` won't contain the range for | ||
# unterminated f-strings. | ||
f"a" f"b | ||
f"a" f"b" f"c | ||
f"a" f"""b | ||
c""" f"d {e | ||
|
||
( | ||
"a" | ||
"b | ||
"c" | ||
"d" | ||
) | ||
|
||
|
||
# Triple-quoted strings, if unterminated, consume everything that comes after | ||
# the opening quote. So, no test code should raise the violation after this. | ||
( | ||
"""abc""" | ||
f"""def | ||
"g" "h" | ||
"i" "j" | ||
) |
26 changes: 26 additions & 0 deletions
26
crates/ruff_linter/resources/test/fixtures/pycodestyle/E30_syntax_error.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# Check for E30 errors in a file containing syntax errors with unclosed | ||
# parenthesis. | ||
|
||
def foo[T1, T2(): | ||
pass | ||
|
||
def bar(): | ||
pass | ||
|
||
|
||
|
||
class Foo: | ||
def __init__( | ||
pass | ||
def method(): | ||
pass | ||
|
||
foo = Foo( | ||
|
||
|
||
def top( | ||
def nested1(): | ||
pass | ||
def nested2(): | ||
pass | ||
|
13 changes: 13 additions & 0 deletions
13
crates/ruff_linter/resources/test/fixtures/pylint/invalid_characters_syntax_error.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# These test cases contain syntax errors. The characters within the unterminated | ||
# strings shouldn't be highlighted. | ||
|
||
# Before any syntax error | ||
b = '' | ||
# Unterminated string | ||
b = ' | ||
b = '' | ||
# Unterminated f-string | ||
b = f' | ||
b = f'' | ||
# Implicitly concatenated | ||
b = '' f'' ' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
29 changes: 29 additions & 0 deletions
29
...ke8_commas/snapshots/ruff_linter__rules__flake8_commas__tests__COM81_syntax_error.py.snap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
--- | ||
source: crates/ruff_linter/src/rules/flake8_commas/mod.rs | ||
--- | ||
COM81_syntax_error.py:3:9: SyntaxError: Type parameter list cannot be empty | ||
| | ||
1 | # Check for `flake8-commas` violation for a file containing syntax errors. | ||
2 | | ||
3 | def foo[(param1='test', param2='test',): | ||
| ^ | ||
4 | pass | ||
| | ||
|
||
COM81_syntax_error.py:3:38: COM819 [*] Trailing comma prohibited | ||
| | ||
1 | # Check for `flake8-commas` violation for a file containing syntax errors. | ||
2 | | ||
3 | def foo[(param1='test', param2='test',): | ||
| ^ COM819 | ||
4 | pass | ||
| | ||
= help: Remove trailing comma | ||
|
||
ℹ Safe fix | ||
1 1 | # Check for `flake8-commas` violation for a file containing syntax errors. | ||
2 2 | | ||
3 |-def foo[(param1='test', param2='test',): | ||
3 |+def foo[(param1='test', param2='test'): | ||
4 4 | pass | ||
5 5 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
200 changes: 200 additions & 0 deletions
200
...ts/ruff_linter__rules__flake8_implicit_str_concat__tests__ISC001_ISC_syntax_error.py.snap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,200 @@ | ||
--- | ||
source: crates/ruff_linter/src/rules/flake8_implicit_str_concat/mod.rs | ||
--- | ||
ISC_syntax_error.py:2:5: SyntaxError: missing closing quote in string literal | ||
| | ||
1 | # The lexer doesn't emit a string token if it's unterminated | ||
2 | "a" "b | ||
| ^ | ||
3 | "a" "b" "c | ||
4 | "a" """b | ||
| | ||
|
||
ISC_syntax_error.py:2:7: SyntaxError: Expected a statement | ||
| | ||
1 | # The lexer doesn't emit a string token if it's unterminated | ||
2 | "a" "b | ||
| ^ | ||
3 | "a" "b" "c | ||
4 | "a" """b | ||
5 | c""" "d | ||
| | ||
|
||
ISC_syntax_error.py:3:1: ISC001 [*] Implicitly concatenated string literals on one line | ||
| | ||
1 | # The lexer doesn't emit a string token if it's unterminated | ||
2 | "a" "b | ||
3 | "a" "b" "c | ||
| ^^^^^^^ ISC001 | ||
4 | "a" """b | ||
5 | c""" "d | ||
| | ||
= help: Combine string literals | ||
|
||
ℹ Safe fix | ||
1 1 | # The lexer doesn't emit a string token if it's unterminated | ||
2 2 | "a" "b | ||
3 |-"a" "b" "c | ||
3 |+"ab" "c | ||
4 4 | "a" """b | ||
5 5 | c""" "d | ||
6 6 | | ||
|
||
ISC_syntax_error.py:3:9: SyntaxError: missing closing quote in string literal | ||
| | ||
1 | # The lexer doesn't emit a string token if it's unterminated | ||
2 | "a" "b | ||
3 | "a" "b" "c | ||
| ^ | ||
4 | "a" """b | ||
5 | c""" "d | ||
| | ||
|
||
ISC_syntax_error.py:3:11: SyntaxError: Expected a statement | ||
| | ||
1 | # The lexer doesn't emit a string token if it's unterminated | ||
2 | "a" "b | ||
3 | "a" "b" "c | ||
| ^ | ||
4 | "a" """b | ||
5 | c""" "d | ||
| | ||
|
||
ISC_syntax_error.py:4:1: ISC001 Implicitly concatenated string literals on one line | ||
| | ||
2 | "a" "b | ||
3 | "a" "b" "c | ||
4 | / "a" """b | ||
5 | | c""" "d | ||
| |____^ ISC001 | ||
6 | | ||
7 | # For f-strings, the `FStringRanges` won't contain the range for | ||
| | ||
= help: Combine string literals | ||
|
||
ISC_syntax_error.py:5:6: SyntaxError: missing closing quote in string literal | ||
| | ||
3 | "a" "b" "c | ||
4 | "a" """b | ||
5 | c""" "d | ||
| ^ | ||
6 | | ||
7 | # For f-strings, the `FStringRanges` won't contain the range for | ||
| | ||
|
||
ISC_syntax_error.py:5:8: SyntaxError: Expected a statement | ||
| | ||
3 | "a" "b" "c | ||
4 | "a" """b | ||
5 | c""" "d | ||
| ^ | ||
6 | | ||
7 | # For f-strings, the `FStringRanges` won't contain the range for | ||
8 | # unterminated f-strings. | ||
| | ||
|
||
ISC_syntax_error.py:9:8: SyntaxError: f-string: unterminated string | ||
| | ||
7 | # For f-strings, the `FStringRanges` won't contain the range for | ||
8 | # unterminated f-strings. | ||
9 | f"a" f"b | ||
| ^ | ||
10 | f"a" f"b" f"c | ||
11 | f"a" f"""b | ||
| | ||
|
||
ISC_syntax_error.py:9:9: SyntaxError: Expected FStringEnd, found newline | ||
| | ||
7 | # For f-strings, the `FStringRanges` won't contain the range for | ||
8 | # unterminated f-strings. | ||
9 | f"a" f"b | ||
| ^ | ||
10 | f"a" f"b" f"c | ||
11 | f"a" f"""b | ||
12 | c""" f"d {e | ||
| | ||
|
||
ISC_syntax_error.py:10:1: ISC001 [*] Implicitly concatenated string literals on one line | ||
| | ||
8 | # unterminated f-strings. | ||
9 | f"a" f"b | ||
10 | f"a" f"b" f"c | ||
| ^^^^^^^^^ ISC001 | ||
11 | f"a" f"""b | ||
12 | c""" f"d {e | ||
| | ||
= help: Combine string literals | ||
|
||
ℹ Safe fix | ||
7 7 | # For f-strings, the `FStringRanges` won't contain the range for | ||
8 8 | # unterminated f-strings. | ||
9 9 | f"a" f"b | ||
10 |-f"a" f"b" f"c | ||
10 |+f"ab" f"c | ||
11 11 | f"a" f"""b | ||
12 12 | c""" f"d {e | ||
13 13 | | ||
|
||
ISC_syntax_error.py:10:13: SyntaxError: f-string: unterminated string | ||
| | ||
8 | # unterminated f-strings. | ||
9 | f"a" f"b | ||
10 | f"a" f"b" f"c | ||
| ^ | ||
11 | f"a" f"""b | ||
12 | c""" f"d {e | ||
| | ||
|
||
ISC_syntax_error.py:10:14: SyntaxError: Expected FStringEnd, found newline | ||
| | ||
8 | # unterminated f-strings. | ||
9 | f"a" f"b | ||
10 | f"a" f"b" f"c | ||
| ^ | ||
11 | f"a" f"""b | ||
12 | c""" f"d {e | ||
| | ||
|
||
ISC_syntax_error.py:11:1: ISC001 Implicitly concatenated string literals on one line | ||
| | ||
9 | f"a" f"b | ||
10 | f"a" f"b" f"c | ||
11 | / f"a" f"""b | ||
12 | | c""" f"d {e | ||
| |____^ ISC001 | ||
13 | | ||
14 | ( | ||
| | ||
= help: Combine string literals | ||
|
||
ISC_syntax_error.py:16:5: SyntaxError: missing closing quote in string literal | ||
| | ||
14 | ( | ||
15 | "a" | ||
16 | "b | ||
| ^ | ||
17 | "c" | ||
18 | "d" | ||
| | ||
|
||
ISC_syntax_error.py:26:9: SyntaxError: f-string: unterminated triple-quoted string | ||
| | ||
24 | ( | ||
25 | """abc""" | ||
26 | f"""def | ||
| ^ | ||
27 | "g" "h" | ||
28 | "i" "j" | ||
| | ||
|
||
ISC_syntax_error.py:30:1: SyntaxError: unexpected EOF while parsing | ||
| | ||
28 | "i" "j" | ||
29 | ) | ||
| | ||
|
||
ISC_syntax_error.py:30:1: SyntaxError: f-string: unterminated string | ||
| | ||
28 | "i" "j" | ||
29 | ) | ||
| |
Oops, something went wrong.