mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-04 10:48:32 +00:00
Implement template strings (#17851)
This PR implements template strings (t-strings) in the parser and formatter for Ruff. Minimal changes necessary to compile were made in other parts of the code (e.g. ty, the linter, etc.). These will be covered properly in follow-up PRs.
This commit is contained in:
parent
ad024f9a09
commit
9bbf4987e8
261 changed files with 18023 additions and 1802 deletions
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/ann_assign_stmt_invalid_annotation.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -199,3 +198,23 @@ Module(
|
|||
4 | x: y := int = 1
|
||||
| ^^ Syntax Error: Expected a statement
|
||||
|
|
||||
|
||||
|
||||
## Semantic Syntax Errors
|
||||
|
||||
|
|
||||
1 | x: *int = 1
|
||||
2 | x: yield a = 1
|
||||
| ^^^^^^^ Syntax Error: yield expression cannot be used within a type annotation
|
||||
3 | x: yield from b = 1
|
||||
4 | x: y := int = 1
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
1 | x: *int = 1
|
||||
2 | x: yield a = 1
|
||||
3 | x: yield from b = 1
|
||||
| ^^^^^^^^^^^^ Syntax Error: yield expression cannot be used within a type annotation
|
||||
4 | x: y := int = 1
|
||||
|
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/f_string_empty_expression.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -22,8 +21,8 @@ Module(
|
|||
FString {
|
||||
range: 0..5,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 2..4,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -63,8 +62,8 @@ Module(
|
|||
FString {
|
||||
range: 6..13,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 8..12,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/f_string_invalid_conversion_flag_name_tok.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -22,8 +21,8 @@ Module(
|
|||
FString {
|
||||
range: 0..8,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 2..7,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/f_string_invalid_conversion_flag_other_tok.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -22,8 +21,8 @@ Module(
|
|||
FString {
|
||||
range: 0..10,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 2..9,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -63,8 +62,8 @@ Module(
|
|||
FString {
|
||||
range: 11..21,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 13..20,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/f_string_invalid_starred_expr.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -22,8 +21,8 @@ Module(
|
|||
FString {
|
||||
range: 77..83,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 79..82,
|
||||
expression: Starred(
|
||||
ExprStarred {
|
||||
|
@ -69,8 +68,8 @@ Module(
|
|||
FString {
|
||||
range: 84..97,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 86..96,
|
||||
expression: Starred(
|
||||
ExprStarred {
|
||||
|
@ -131,8 +130,8 @@ Module(
|
|||
FString {
|
||||
range: 98..111,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 100..110,
|
||||
expression: Starred(
|
||||
ExprStarred {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/f_string_lambda_without_parentheses.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -22,8 +21,8 @@ Module(
|
|||
FString {
|
||||
range: 0..16,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 2..12,
|
||||
expression: Lambda(
|
||||
ExprLambda {
|
||||
|
@ -66,7 +65,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 12..14,
|
||||
value: " x",
|
||||
},
|
||||
|
@ -111,5 +110,5 @@ Module(
|
|||
|
||||
|
|
||||
1 | f"{lambda x: x}"
|
||||
| ^ Syntax Error: Expected an f-string element or the end of the f-string
|
||||
| ^ Syntax Error: Expected an f-string or t-string element or the end of the f-string or t-string
|
||||
|
|
||||
|
|
|
@ -21,8 +21,8 @@ Module(
|
|||
FString {
|
||||
range: 0..4,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 2..3,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -62,8 +62,8 @@ Module(
|
|||
FString {
|
||||
range: 5..14,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 7..14,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -103,8 +103,8 @@ Module(
|
|||
FString {
|
||||
range: 15..23,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 17..22,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -150,8 +150,8 @@ Module(
|
|||
FString {
|
||||
range: 24..28,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 26..27,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -177,8 +177,8 @@ Module(
|
|||
FString {
|
||||
range: 29..37,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 33..34,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/f_string_unclosed_lbrace_in_format_spec.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -23,13 +22,13 @@ Module(
|
|||
range: 0..12,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 2..8,
|
||||
value: "hello ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 8..11,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -41,7 +40,7 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 11..11,
|
||||
elements: [],
|
||||
},
|
||||
|
@ -75,13 +74,13 @@ Module(
|
|||
range: 13..28,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 15..21,
|
||||
value: "hello ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 21..27,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -93,11 +92,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 24..27,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 24..27,
|
||||
value: ".3f",
|
||||
},
|
||||
|
|
|
@ -179,3 +179,13 @@ Module(
|
|||
3 | def foo() -> yield x: ...
|
||||
| ^^^^^^^ Syntax Error: Yield expression cannot be used here
|
||||
|
|
||||
|
||||
|
||||
## Semantic Syntax Errors
|
||||
|
||||
|
|
||||
1 | def foo() -> *int: ...
|
||||
2 | def foo() -> (*int): ...
|
||||
3 | def foo() -> yield x: ...
|
||||
| ^^^^^^^ Syntax Error: yield expression cannot be used within a type annotation
|
||||
|
|
||||
|
|
|
@ -84,13 +84,13 @@ Module(
|
|||
range: 29..40,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 31..37,
|
||||
value: "world ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 37..40,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
|
|
@ -34,13 +34,13 @@ Module(
|
|||
range: 18..31,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 20..26,
|
||||
value: "world ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 26..29,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -132,7 +132,7 @@ Module(
|
|||
range: 68..76,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 70..75,
|
||||
value: "third",
|
||||
},
|
||||
|
@ -198,7 +198,7 @@ Module(
|
|||
2 | 'hello'
|
||||
3 | f'world {x}
|
||||
4 | )
|
||||
| ^ Syntax Error: Expected an f-string element or the end of the f-string
|
||||
| ^ Syntax Error: Expected an f-string or t-string element or the end of the f-string or t-string
|
||||
5 | 1 + 1
|
||||
6 | (
|
||||
|
|
||||
|
|
|
@ -1397,7 +1397,7 @@ Module(
|
|||
|
||||
|
|
||||
1 | def d[T]() -> (await 1): ...
|
||||
| ^^^^^^^ Syntax Error: await expression cannot be used within a generic definition
|
||||
| ^^^^^^^ Syntax Error: await expression cannot be used within a type annotation
|
||||
2 | def e[T](arg: (await 1)): ...
|
||||
3 | def f[T]() -> (y := 3): ...
|
||||
|
|
||||
|
@ -1406,7 +1406,7 @@ Module(
|
|||
|
|
||||
1 | def d[T]() -> (await 1): ...
|
||||
2 | def e[T](arg: (await 1)): ...
|
||||
| ^^^^^^^ Syntax Error: await expression cannot be used within a generic definition
|
||||
| ^^^^^^^ Syntax Error: await expression cannot be used within a type annotation
|
||||
3 | def f[T]() -> (y := 3): ...
|
||||
4 | def g[T](arg: (x := 1)): ...
|
||||
|
|
||||
|
@ -1416,7 +1416,7 @@ Module(
|
|||
1 | def d[T]() -> (await 1): ...
|
||||
2 | def e[T](arg: (await 1)): ...
|
||||
3 | def f[T]() -> (y := 3): ...
|
||||
| ^^^^^^ Syntax Error: named expression cannot be used within a generic definition
|
||||
| ^^^^^^ Syntax Error: named expression cannot be used within a type annotation
|
||||
4 | def g[T](arg: (x := 1)): ...
|
||||
5 | def h[T](x: (yield 1)): ...
|
||||
|
|
||||
|
@ -1426,7 +1426,7 @@ Module(
|
|||
2 | def e[T](arg: (await 1)): ...
|
||||
3 | def f[T]() -> (y := 3): ...
|
||||
4 | def g[T](arg: (x := 1)): ...
|
||||
| ^^^^^^ Syntax Error: named expression cannot be used within a generic definition
|
||||
| ^^^^^^ Syntax Error: named expression cannot be used within a type annotation
|
||||
5 | def h[T](x: (yield 1)): ...
|
||||
6 | def j[T]() -> (yield 1): ...
|
||||
|
|
||||
|
@ -1436,7 +1436,7 @@ Module(
|
|||
3 | def f[T]() -> (y := 3): ...
|
||||
4 | def g[T](arg: (x := 1)): ...
|
||||
5 | def h[T](x: (yield 1)): ...
|
||||
| ^^^^^^^ Syntax Error: yield expression cannot be used within a generic definition
|
||||
| ^^^^^^^ Syntax Error: yield expression cannot be used within a type annotation
|
||||
6 | def j[T]() -> (yield 1): ...
|
||||
7 | def l[T](x: (yield from 1)): ...
|
||||
|
|
||||
|
@ -1446,7 +1446,7 @@ Module(
|
|||
4 | def g[T](arg: (x := 1)): ...
|
||||
5 | def h[T](x: (yield 1)): ...
|
||||
6 | def j[T]() -> (yield 1): ...
|
||||
| ^^^^^^^ Syntax Error: yield expression cannot be used within a generic definition
|
||||
| ^^^^^^^ Syntax Error: yield expression cannot be used within a type annotation
|
||||
7 | def l[T](x: (yield from 1)): ...
|
||||
8 | def n[T]() -> (yield from 1): ...
|
||||
|
|
||||
|
@ -1456,7 +1456,7 @@ Module(
|
|||
5 | def h[T](x: (yield 1)): ...
|
||||
6 | def j[T]() -> (yield 1): ...
|
||||
7 | def l[T](x: (yield from 1)): ...
|
||||
| ^^^^^^^^^^^^ Syntax Error: yield expression cannot be used within a generic definition
|
||||
| ^^^^^^^^^^^^ Syntax Error: yield expression cannot be used within a type annotation
|
||||
8 | def n[T]() -> (yield from 1): ...
|
||||
9 | def p[T: (yield 1)](): ... # yield in TypeVar bound
|
||||
|
|
||||
|
@ -1466,7 +1466,7 @@ Module(
|
|||
6 | def j[T]() -> (yield 1): ...
|
||||
7 | def l[T](x: (yield from 1)): ...
|
||||
8 | def n[T]() -> (yield from 1): ...
|
||||
| ^^^^^^^^^^^^ Syntax Error: yield expression cannot be used within a generic definition
|
||||
| ^^^^^^^^^^^^ Syntax Error: yield expression cannot be used within a type annotation
|
||||
9 | def p[T: (yield 1)](): ... # yield in TypeVar bound
|
||||
10 | def q[T = (yield 1)](): ... # yield in TypeVar default
|
||||
|
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/invalid_fstring_literal_element.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -23,7 +22,7 @@ Module(
|
|||
range: 0..26,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 2..25,
|
||||
value: "",
|
||||
},
|
||||
|
@ -55,7 +54,7 @@ Module(
|
|||
range: 27..57,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 31..54,
|
||||
value: "",
|
||||
},
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/mixed_bytes_and_non_bytes_literals.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -61,7 +60,7 @@ Module(
|
|||
range: 18..26,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 20..25,
|
||||
value: "first",
|
||||
},
|
||||
|
@ -117,7 +116,7 @@ Module(
|
|||
range: 45..54,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 47..53,
|
||||
value: "second",
|
||||
},
|
||||
|
|
|
@ -224,3 +224,13 @@ Module(
|
|||
3 | def foo(arg: x := int): ...
|
||||
| ^^ Syntax Error: Expected ',', found ':='
|
||||
|
|
||||
|
||||
|
||||
## Semantic Syntax Errors
|
||||
|
||||
|
|
||||
1 | def foo(arg: *int): ...
|
||||
2 | def foo(arg: yield int): ...
|
||||
| ^^^^^^^^^ Syntax Error: yield expression cannot be used within a type annotation
|
||||
3 | def foo(arg: x := int): ...
|
||||
|
|
||||
|
|
|
@ -308,3 +308,14 @@ Module(
|
|||
| ^^^^^^^ Syntax Error: Yield expression cannot be used here
|
||||
5 | # def foo(*args: **int): ...
|
||||
|
|
||||
|
||||
|
||||
## Semantic Syntax Errors
|
||||
|
||||
|
|
||||
2 | def foo(*args: (*tuple[int])): ...
|
||||
3 | def foo(*args: *int or str): ...
|
||||
4 | def foo(*args: *yield x): ...
|
||||
| ^^^^^^^ Syntax Error: yield expression cannot be used within a type annotation
|
||||
5 | # def foo(*args: **int): ...
|
||||
|
|
||||
|
|
|
@ -22,13 +22,13 @@ Module(
|
|||
range: 44..74,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 46..58,
|
||||
value: "Magic wand: ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 58..73,
|
||||
expression: Subscript(
|
||||
ExprSubscript {
|
||||
|
@ -92,8 +92,8 @@ Module(
|
|||
FString {
|
||||
range: 95..112,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 97..111,
|
||||
expression: Call(
|
||||
ExprCall {
|
||||
|
@ -173,13 +173,13 @@ Module(
|
|||
range: 148..220,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 152..169,
|
||||
value: "A complex trick: ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 169..217,
|
||||
expression: Subscript(
|
||||
ExprSubscript {
|
||||
|
@ -243,8 +243,8 @@ Module(
|
|||
FString {
|
||||
range: 221..254,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 223..253,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -255,8 +255,8 @@ Module(
|
|||
FString {
|
||||
range: 224..252,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 226..251,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -267,8 +267,8 @@ Module(
|
|||
FString {
|
||||
range: 227..250,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 229..249,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -279,8 +279,8 @@ Module(
|
|||
FString {
|
||||
range: 230..248,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 232..247,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -291,8 +291,8 @@ Module(
|
|||
FString {
|
||||
range: 233..246,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 235..245,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -303,8 +303,8 @@ Module(
|
|||
FString {
|
||||
range: 236..244,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 238..243,
|
||||
expression: BinOp(
|
||||
ExprBinOp {
|
||||
|
@ -444,8 +444,8 @@ Module(
|
|||
FString {
|
||||
range: 276..310,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 278..303,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -456,8 +456,8 @@ Module(
|
|||
FString {
|
||||
range: 279..302,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 283..293,
|
||||
expression: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
|
@ -483,7 +483,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 293..299,
|
||||
value: " inner",
|
||||
},
|
||||
|
@ -506,7 +506,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 303..309,
|
||||
value: " outer",
|
||||
},
|
||||
|
@ -538,13 +538,13 @@ Module(
|
|||
range: 336..359,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 338..343,
|
||||
value: "test ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 343..353,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -559,7 +559,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 353..358,
|
||||
value: " more",
|
||||
},
|
||||
|
@ -590,8 +590,8 @@ Module(
|
|||
FString {
|
||||
range: 403..422,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 407..419,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -602,8 +602,8 @@ Module(
|
|||
FString {
|
||||
range: 408..418,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 412..415,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -660,8 +660,8 @@ Module(
|
|||
FString {
|
||||
range: 468..502,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 470..501,
|
||||
expression: Call(
|
||||
ExprCall {
|
||||
|
|
|
@ -527,13 +527,13 @@ Module(
|
|||
range: 895..905,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 897..903,
|
||||
value: "hello ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 903..905,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
|
|
@ -22,13 +22,13 @@ Module(
|
|||
range: 162..192,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 164..171,
|
||||
value: "middle ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 171..191,
|
||||
expression: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
|
@ -51,11 +51,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 181..191,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 181..191,
|
||||
value: " ",
|
||||
},
|
||||
|
@ -116,13 +116,13 @@ Module(
|
|||
range: 207..228,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 209..216,
|
||||
value: "middle ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 216..228,
|
||||
expression: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
|
@ -145,11 +145,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 226..228,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 226..228,
|
||||
value: "\\",
|
||||
},
|
||||
|
@ -209,13 +209,13 @@ Module(
|
|||
range: 253..285,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 255..262,
|
||||
value: "middle ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 262..284,
|
||||
expression: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
|
@ -238,11 +238,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 272..284,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 272..284,
|
||||
value: "\\ ",
|
||||
},
|
||||
|
|
|
@ -22,13 +22,13 @@ Module(
|
|||
range: 166..178,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 170..176,
|
||||
value: "hello ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 176..178,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/invalid/re_lexing/triple_quoted_fstring_2.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -22,8 +21,8 @@ Module(
|
|||
FString {
|
||||
range: 167..183,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 171..180,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -35,11 +34,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 176..180,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 176..180,
|
||||
value: ".3f\n",
|
||||
},
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/invalid/re_lexing/triple_quoted_fstring_3.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -35,8 +34,8 @@ Module(
|
|||
FString {
|
||||
range: 239..253,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 243..250,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -48,11 +47,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 246..250,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 246..250,
|
||||
value: ".3f\n",
|
||||
},
|
||||
|
|
|
@ -782,8 +782,8 @@ Module(
|
|||
FString {
|
||||
range: 576..585,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 578..584,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -833,8 +833,8 @@ Module(
|
|||
FString {
|
||||
range: 591..609,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 593..598,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -849,13 +849,13 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 598..603,
|
||||
value: " and ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 603..608,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
|
|
@ -688,8 +688,8 @@ Module(
|
|||
FString {
|
||||
range: 387..396,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 389..395,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -738,8 +738,8 @@ Module(
|
|||
FString {
|
||||
range: 403..421,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 405..410,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -754,13 +754,13 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 410..415,
|
||||
value: " and ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 415..420,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
|
|
@ -0,0 +1,113 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/t_string_empty_expression.py
|
||||
---
|
||||
## AST
|
||||
|
||||
```
|
||||
Module(
|
||||
ModModule {
|
||||
range: 0..58,
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 44..49,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 44..49,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 44..49,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 46..48,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
range: 47..47,
|
||||
id: Name(""),
|
||||
ctx: Invalid,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 50..57,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 50..57,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 50..57,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 52..56,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
range: 53..53,
|
||||
id: Name(""),
|
||||
ctx: Invalid,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
)
|
||||
```
|
||||
## Errors
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{}"
|
||||
| ^ Syntax Error: Expected an expression
|
||||
3 | t"{ }"
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{}"
|
||||
3 | t"{ }"
|
||||
| ^ Syntax Error: Expected an expression
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/t_string_invalid_conversion_flag_name_tok.py
|
||||
---
|
||||
## AST
|
||||
|
||||
```
|
||||
Module(
|
||||
ModModule {
|
||||
range: 0..53,
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 44..52,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 44..52,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 44..52,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 46..51,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
range: 47..48,
|
||||
id: Name("x"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
)
|
||||
```
|
||||
## Errors
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{x!z}"
|
||||
| ^ Syntax Error: t-string: invalid conversion character
|
||||
|
|
|
@ -0,0 +1,113 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/t_string_invalid_conversion_flag_other_tok.py
|
||||
---
|
||||
## AST
|
||||
|
||||
```
|
||||
Module(
|
||||
ModModule {
|
||||
range: 0..66,
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 44..54,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 44..54,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 44..54,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 46..53,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
range: 47..48,
|
||||
id: Name("x"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 55..65,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 55..65,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 55..65,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 57..64,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
range: 58..59,
|
||||
id: Name("x"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
)
|
||||
```
|
||||
## Errors
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{x!123}"
|
||||
| ^^^ Syntax Error: t-string: invalid conversion character
|
||||
3 | t"{x!'a'}"
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{x!123}"
|
||||
3 | t"{x!'a'}"
|
||||
| ^^^ Syntax Error: t-string: invalid conversion character
|
||||
|
|
|
@ -0,0 +1,205 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/t_string_invalid_starred_expr.py
|
||||
---
|
||||
## AST
|
||||
|
||||
```
|
||||
Module(
|
||||
ModModule {
|
||||
range: 0..156,
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 121..127,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 121..127,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 121..127,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 123..126,
|
||||
expression: Starred(
|
||||
ExprStarred {
|
||||
range: 124..125,
|
||||
value: Name(
|
||||
ExprName {
|
||||
range: 125..125,
|
||||
id: Name(""),
|
||||
ctx: Invalid,
|
||||
},
|
||||
),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 128..141,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 128..141,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 128..141,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 130..140,
|
||||
expression: Starred(
|
||||
ExprStarred {
|
||||
range: 131..139,
|
||||
value: BoolOp(
|
||||
ExprBoolOp {
|
||||
range: 132..139,
|
||||
op: And,
|
||||
values: [
|
||||
Name(
|
||||
ExprName {
|
||||
range: 132..133,
|
||||
id: Name("x"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
Name(
|
||||
ExprName {
|
||||
range: 138..139,
|
||||
id: Name("y"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 142..155,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 142..155,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 142..155,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 144..154,
|
||||
expression: Starred(
|
||||
ExprStarred {
|
||||
range: 145..153,
|
||||
value: Yield(
|
||||
ExprYield {
|
||||
range: 146..153,
|
||||
value: Some(
|
||||
Name(
|
||||
ExprName {
|
||||
range: 152..153,
|
||||
id: Name("x"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
)
|
||||
```
|
||||
## Errors
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | # Starred expression inside t-string has a minimum precedence of bitwise or.
|
||||
3 | t"{*}"
|
||||
| ^ Syntax Error: Expected an expression
|
||||
4 | t"{*x and y}"
|
||||
5 | t"{*yield x}"
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
2 | # Starred expression inside t-string has a minimum precedence of bitwise or.
|
||||
3 | t"{*}"
|
||||
4 | t"{*x and y}"
|
||||
| ^^^^^^^ Syntax Error: Boolean expression cannot be used here
|
||||
5 | t"{*yield x}"
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
3 | t"{*}"
|
||||
4 | t"{*x and y}"
|
||||
5 | t"{*yield x}"
|
||||
| ^^^^^^^ Syntax Error: Yield expression cannot be used here
|
||||
|
|
|
@ -0,0 +1,118 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/t_string_lambda_without_parentheses.py
|
||||
---
|
||||
## AST
|
||||
|
||||
```
|
||||
Module(
|
||||
ModModule {
|
||||
range: 0..61,
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 44..60,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 44..60,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 44..60,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 46..56,
|
||||
expression: Lambda(
|
||||
ExprLambda {
|
||||
range: 47..56,
|
||||
parameters: Some(
|
||||
Parameters {
|
||||
range: 54..55,
|
||||
posonlyargs: [],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 54..55,
|
||||
parameter: Parameter {
|
||||
range: 54..55,
|
||||
name: Identifier {
|
||||
id: Name("x"),
|
||||
range: 54..55,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
vararg: None,
|
||||
kwonlyargs: [],
|
||||
kwarg: None,
|
||||
},
|
||||
),
|
||||
body: Name(
|
||||
ExprName {
|
||||
range: 56..56,
|
||||
id: Name(""),
|
||||
ctx: Invalid,
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
Literal(
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 56..58,
|
||||
value: " x",
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
)
|
||||
```
|
||||
## Errors
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{lambda x: x}"
|
||||
| ^^ Syntax Error: Expected an expression
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{lambda x: x}"
|
||||
| ^^^^^^^^^ Syntax Error: t-string: lambda expressions are not allowed without parentheses
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{lambda x: x}"
|
||||
| ^^ Syntax Error: t-string: expecting '}'
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{lambda x: x}"
|
||||
| ^ Syntax Error: Expected an f-string or t-string element or the end of the f-string or t-string
|
||||
|
|
|
@ -0,0 +1,359 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/t_string_unclosed_lbrace.py
|
||||
---
|
||||
## AST
|
||||
|
||||
```
|
||||
Module(
|
||||
ModModule {
|
||||
range: 0..82,
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 44..48,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 44..48,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 44..48,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 46..47,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
range: 47..47,
|
||||
id: Name(""),
|
||||
ctx: Invalid,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 49..58,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 49..58,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 49..58,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 51..58,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
range: 52..55,
|
||||
id: Name("foo"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 59..67,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 59..67,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 59..67,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 61..66,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
range: 62..65,
|
||||
id: Name("foo"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
debug_text: Some(
|
||||
DebugText {
|
||||
leading: "",
|
||||
trailing: "=",
|
||||
},
|
||||
),
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 68..81,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 68..81,
|
||||
value: TStringValue {
|
||||
inner: Concatenated(
|
||||
[
|
||||
TString(
|
||||
TString {
|
||||
range: 68..72,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 70..71,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
range: 71..71,
|
||||
id: Name(""),
|
||||
ctx: Invalid,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
TString(
|
||||
TString {
|
||||
range: 73..81,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 77..78,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
range: 78..78,
|
||||
id: Name(""),
|
||||
ctx: Invalid,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: true,
|
||||
},
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
)
|
||||
```
|
||||
## Errors
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{"
|
||||
| ^ Syntax Error: missing closing quote in string literal
|
||||
3 | t"{foo!r"
|
||||
4 | t"{foo="
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{"
|
||||
| ^ Syntax Error: t-string: unterminated string
|
||||
3 | t"{foo!r"
|
||||
4 | t"{foo="
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{"
|
||||
| ^ Syntax Error: t-string: unterminated string
|
||||
3 | t"{foo!r"
|
||||
4 | t"{foo="
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{"
|
||||
3 | t"{foo!r"
|
||||
| ^^ Syntax Error: missing closing quote in string literal
|
||||
4 | t"{foo="
|
||||
5 | t"{"
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{"
|
||||
3 | t"{foo!r"
|
||||
| ^ Syntax Error: t-string: unterminated string
|
||||
4 | t"{foo="
|
||||
5 | t"{"
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{"
|
||||
3 | t"{foo!r"
|
||||
| ^ Syntax Error: t-string: unterminated string
|
||||
4 | t"{foo="
|
||||
5 | t"{"
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
2 | t"{"
|
||||
3 | t"{foo!r"
|
||||
4 | t"{foo="
|
||||
| ^^ Syntax Error: t-string: expecting '}'
|
||||
5 | t"{"
|
||||
6 | t"""{"""
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"{"
|
||||
3 | t"{foo!r"
|
||||
| ^ Syntax Error: Expected TStringEnd, found Unknown
|
||||
4 | t"{foo="
|
||||
5 | t"{"
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
2 | t"{"
|
||||
3 | t"{foo!r"
|
||||
4 | t"{foo="
|
||||
| ^ Syntax Error: missing closing quote in string literal
|
||||
5 | t"{"
|
||||
6 | t"""{"""
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
2 | t"{"
|
||||
3 | t"{foo!r"
|
||||
4 | t"{foo="
|
||||
| ^ Syntax Error: t-string: unterminated string
|
||||
5 | t"{"
|
||||
6 | t"""{"""
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
2 | t"{"
|
||||
3 | t"{foo!r"
|
||||
4 | t"{foo="
|
||||
| ^ Syntax Error: t-string: unterminated string
|
||||
5 | t"{"
|
||||
6 | t"""{"""
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
3 | t"{foo!r"
|
||||
4 | t"{foo="
|
||||
5 | t"{"
|
||||
| ^ Syntax Error: missing closing quote in string literal
|
||||
6 | t"""{"""
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
4 | t"{foo="
|
||||
5 | t"{"
|
||||
6 | t"""{"""
|
||||
| ^^^^ Syntax Error: Expected TStringEnd, found TStringStart
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
4 | t"{foo="
|
||||
5 | t"{"
|
||||
6 | t"""{"""
|
||||
| ^^^ Syntax Error: Expected an expression
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
5 | t"{"
|
||||
6 | t"""{"""
|
||||
| ^ Syntax Error: unexpected EOF while parsing
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
5 | t"{"
|
||||
6 | t"""{"""
|
||||
| ^ Syntax Error: t-string: unterminated string
|
||||
|
|
|
@ -0,0 +1,142 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/err/t_string_unclosed_lbrace_in_format_spec.py
|
||||
---
|
||||
## AST
|
||||
|
||||
```
|
||||
Module(
|
||||
ModModule {
|
||||
range: 0..73,
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 44..56,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 44..56,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 44..56,
|
||||
elements: [
|
||||
Literal(
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 46..52,
|
||||
value: "hello ",
|
||||
},
|
||||
),
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 52..55,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
range: 53..54,
|
||||
id: Name("x"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 55..55,
|
||||
elements: [],
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 57..72,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 57..72,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 57..72,
|
||||
elements: [
|
||||
Literal(
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 59..65,
|
||||
value: "hello ",
|
||||
},
|
||||
),
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 65..71,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
range: 66..67,
|
||||
id: Name("x"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 68..71,
|
||||
elements: [
|
||||
Literal(
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 68..71,
|
||||
value: ".3f",
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
)
|
||||
```
|
||||
## Errors
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"hello {x:"
|
||||
| ^ Syntax Error: t-string: expecting '}'
|
||||
3 | t"hello {x:.3f"
|
||||
|
|
||||
|
||||
|
||||
|
|
||||
1 | # parse_options: {"target-version": "3.14"}
|
||||
2 | t"hello {x:"
|
||||
3 | t"hello {x:.3f"
|
||||
| ^ Syntax Error: t-string: expecting '}'
|
||||
|
|
|
@ -74,13 +74,13 @@ Module(
|
|||
range: 14..24,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 16..22,
|
||||
value: "hello ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 22..24,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -148,13 +148,13 @@ Module(
|
|||
range: 31..42,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 33..39,
|
||||
value: "hello ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 39..42,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -166,7 +166,7 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 42..42,
|
||||
elements: [],
|
||||
},
|
||||
|
@ -227,13 +227,13 @@ Module(
|
|||
range: 49..60,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 51..57,
|
||||
value: "hello ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 57..60,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
|
|
@ -173,7 +173,7 @@ Module(
|
|||
|
||||
|
|
||||
1 | del __debug__
|
||||
| ^^^^^^^^^ Syntax Error: cannot delete `__debug__` on Python 3.13 (syntax was removed in 3.9)
|
||||
| ^^^^^^^^^ Syntax Error: cannot delete `__debug__` on Python 3.14 (syntax was removed in 3.9)
|
||||
2 | del x, y, __debug__, z
|
||||
3 | __debug__ = 1
|
||||
|
|
||||
|
@ -182,7 +182,7 @@ Module(
|
|||
|
|
||||
1 | del __debug__
|
||||
2 | del x, y, __debug__, z
|
||||
| ^^^^^^^^^ Syntax Error: cannot delete `__debug__` on Python 3.13 (syntax was removed in 3.9)
|
||||
| ^^^^^^^^^ Syntax Error: cannot delete `__debug__` on Python 3.14 (syntax was removed in 3.9)
|
||||
3 | __debug__ = 1
|
||||
4 | x, y, __debug__, z = 1, 2, 3, 4
|
||||
|
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/valid/expressions/f_string.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -147,8 +146,8 @@ Module(
|
|||
FString {
|
||||
range: 47..56,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 49..55,
|
||||
expression: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
|
@ -199,8 +198,8 @@ Module(
|
|||
FString {
|
||||
range: 57..67,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 59..66,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -240,8 +239,8 @@ Module(
|
|||
FString {
|
||||
range: 68..75,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 70..74,
|
||||
expression: Tuple(
|
||||
ExprTuple {
|
||||
|
@ -291,8 +290,8 @@ Module(
|
|||
FString {
|
||||
range: 76..86,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 78..85,
|
||||
expression: Compare(
|
||||
ExprCompare {
|
||||
|
@ -323,7 +322,7 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 84..84,
|
||||
elements: [],
|
||||
},
|
||||
|
@ -356,8 +355,8 @@ Module(
|
|||
FString {
|
||||
range: 87..102,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 89..101,
|
||||
expression: NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
|
@ -370,11 +369,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 92..100,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 92..97,
|
||||
expression: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
|
@ -400,7 +399,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 97..100,
|
||||
value: ">10",
|
||||
},
|
||||
|
@ -436,8 +435,8 @@ Module(
|
|||
FString {
|
||||
range: 103..118,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 105..117,
|
||||
expression: NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
|
@ -450,11 +449,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 108..116,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 108..113,
|
||||
expression: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
|
@ -480,7 +479,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 113..116,
|
||||
value: ">10",
|
||||
},
|
||||
|
@ -516,8 +515,8 @@ Module(
|
|||
FString {
|
||||
range: 119..133,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 121..132,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -562,8 +561,8 @@ Module(
|
|||
FString {
|
||||
range: 134..154,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 136..153,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -580,11 +579,11 @@ Module(
|
|||
),
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 147..152,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 147..152,
|
||||
value: ".3f ",
|
||||
},
|
||||
|
@ -620,8 +619,8 @@ Module(
|
|||
FString {
|
||||
range: 155..173,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 157..172,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -666,8 +665,8 @@ Module(
|
|||
FString {
|
||||
range: 174..190,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 176..189,
|
||||
expression: Tuple(
|
||||
ExprTuple {
|
||||
|
@ -730,8 +729,8 @@ Module(
|
|||
FString {
|
||||
range: 191..217,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 193..216,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -742,8 +741,8 @@ Module(
|
|||
FString {
|
||||
range: 194..210,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 196..209,
|
||||
expression: NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
|
@ -761,11 +760,11 @@ Module(
|
|||
),
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 205..208,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 205..208,
|
||||
value: ".1f",
|
||||
},
|
||||
|
@ -790,11 +789,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 211..215,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 211..215,
|
||||
value: "*^20",
|
||||
},
|
||||
|
@ -849,13 +848,13 @@ Module(
|
|||
range: 227..242,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 229..233,
|
||||
value: "bar ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 233..240,
|
||||
expression: BinOp(
|
||||
ExprBinOp {
|
||||
|
@ -883,7 +882,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 240..241,
|
||||
value: " ",
|
||||
},
|
||||
|
@ -1036,13 +1035,13 @@ Module(
|
|||
range: 347..364,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 349..350,
|
||||
value: "\\",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 350..355,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1057,13 +1056,13 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 355..356,
|
||||
value: "\\",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 356..363,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1075,11 +1074,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 361..362,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 361..362,
|
||||
value: "\\",
|
||||
},
|
||||
|
@ -1116,7 +1115,7 @@ Module(
|
|||
range: 365..379,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 367..378,
|
||||
value: "\\{foo\\}",
|
||||
},
|
||||
|
@ -1147,8 +1146,8 @@ Module(
|
|||
FString {
|
||||
range: 380..420,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 384..417,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1160,11 +1159,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 394..416,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 394..416,
|
||||
value: "x\n y\n z\n",
|
||||
},
|
||||
|
@ -1200,8 +1199,8 @@ Module(
|
|||
FString {
|
||||
range: 421..439,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 423..438,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1247,13 +1246,13 @@ Module(
|
|||
range: 441..486,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 443..450,
|
||||
value: "normal ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 450..455,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1268,13 +1267,13 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 455..468,
|
||||
value: " {another} ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 468..473,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1289,13 +1288,13 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 473..476,
|
||||
value: " {",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 476..483,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1310,7 +1309,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 483..485,
|
||||
value: "}",
|
||||
},
|
||||
|
@ -1342,13 +1341,13 @@ Module(
|
|||
range: 487..529,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 489..496,
|
||||
value: "normal ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 496..503,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1363,13 +1362,13 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 503..504,
|
||||
value: " ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 504..511,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1384,13 +1383,13 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 511..512,
|
||||
value: " ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 512..519,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1405,13 +1404,13 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 519..520,
|
||||
value: " ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 520..528,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1452,13 +1451,13 @@ Module(
|
|||
range: 530..549,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 532..539,
|
||||
value: "normal ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 539..548,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1470,11 +1469,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 542..547,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 542..547,
|
||||
value: "y + 2",
|
||||
},
|
||||
|
@ -1510,8 +1509,8 @@ Module(
|
|||
FString {
|
||||
range: 550..568,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 552..567,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1523,11 +1522,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 555..566,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 555..566,
|
||||
expression: Call(
|
||||
ExprCall {
|
||||
|
@ -1600,8 +1599,8 @@ Module(
|
|||
FString {
|
||||
range: 569..588,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 571..587,
|
||||
expression: Lambda(
|
||||
ExprLambda {
|
||||
|
@ -1676,8 +1675,8 @@ Module(
|
|||
FString {
|
||||
range: 589..597,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 591..596,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1722,8 +1721,8 @@ Module(
|
|||
FString {
|
||||
range: 598..611,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 600..610,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1768,8 +1767,8 @@ Module(
|
|||
FString {
|
||||
range: 612..621,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 614..620,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1814,8 +1813,8 @@ Module(
|
|||
FString {
|
||||
range: 622..636,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 624..635,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1827,11 +1826,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 627..634,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 627..634,
|
||||
value: ".3f!r =",
|
||||
},
|
||||
|
@ -1867,8 +1866,8 @@ Module(
|
|||
FString {
|
||||
range: 637..653,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 639..652,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1885,11 +1884,11 @@ Module(
|
|||
),
|
||||
conversion: Repr,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 648..651,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 648..651,
|
||||
value: ".3f",
|
||||
},
|
||||
|
@ -1925,8 +1924,8 @@ Module(
|
|||
FString {
|
||||
range: 654..667,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 656..666,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -1938,11 +1937,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 659..665,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 659..665,
|
||||
value: ".3f=!r",
|
||||
},
|
||||
|
@ -1990,8 +1989,8 @@ Module(
|
|||
FString {
|
||||
range: 676..682,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 678..681,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -2033,8 +2032,8 @@ Module(
|
|||
FString {
|
||||
range: 683..689,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 685..688,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -2060,8 +2059,8 @@ Module(
|
|||
FString {
|
||||
range: 690..696,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 692..695,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -2103,8 +2102,8 @@ Module(
|
|||
FString {
|
||||
range: 697..703,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 699..702,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -2157,13 +2156,13 @@ Module(
|
|||
range: 712..756,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 714..739,
|
||||
value: "Invalid args in command: ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 739..755,
|
||||
expression: Tuple(
|
||||
ExprTuple {
|
||||
|
@ -2237,8 +2236,8 @@ Module(
|
|||
FString {
|
||||
range: 763..769,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 765..768,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -2292,7 +2291,7 @@ Module(
|
|||
range: 782..786,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 784..785,
|
||||
value: "a",
|
||||
},
|
||||
|
@ -2310,7 +2309,7 @@ Module(
|
|||
range: 791..795,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 793..794,
|
||||
value: "b",
|
||||
},
|
||||
|
@ -2339,7 +2338,7 @@ Module(
|
|||
range: 808..813,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 811..812,
|
||||
value: "d",
|
||||
},
|
||||
|
@ -2359,7 +2358,7 @@ Module(
|
|||
range: 818..823,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 821..822,
|
||||
value: "e",
|
||||
},
|
||||
|
@ -2405,8 +2404,8 @@ Module(
|
|||
FString {
|
||||
range: 857..865,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 859..864,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -2481,8 +2480,8 @@ Module(
|
|||
FString {
|
||||
range: 886..894,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 888..893,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -2557,8 +2556,8 @@ Module(
|
|||
FString {
|
||||
range: 916..924,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 918..923,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -2634,13 +2633,13 @@ Module(
|
|||
range: 947..966,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 949..953,
|
||||
value: "bar ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 953..958,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -2655,7 +2654,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 958..965,
|
||||
value: " really",
|
||||
},
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/ok/fstring_format_spec_terminator.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -23,13 +22,13 @@ Module(
|
|||
range: 0..19,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 2..8,
|
||||
value: "hello ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 8..12,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -41,7 +40,7 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 11..11,
|
||||
elements: [],
|
||||
},
|
||||
|
@ -49,7 +48,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 12..18,
|
||||
value: " world",
|
||||
},
|
||||
|
@ -81,13 +80,13 @@ Module(
|
|||
range: 20..42,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 22..28,
|
||||
value: "hello ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 28..35,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -99,11 +98,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 31..34,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 31..34,
|
||||
value: ".3f",
|
||||
},
|
||||
|
@ -114,7 +113,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 35..41,
|
||||
value: " world",
|
||||
},
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/ok/match_classify_as_keyword_1.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -223,13 +222,13 @@ Module(
|
|||
range: 140..150,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 142..146,
|
||||
value: "foo ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 146..149,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
|
|
@ -7,7 +7,7 @@ input_file: crates/ruff_python_parser/resources/inline/ok/param_with_annotation.
|
|||
```
|
||||
Module(
|
||||
ModModule {
|
||||
range: 0..84,
|
||||
range: 0..54,
|
||||
body: [
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
|
@ -145,72 +145,6 @@ Module(
|
|||
],
|
||||
},
|
||||
),
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
range: 54..83,
|
||||
is_async: false,
|
||||
decorator_list: [],
|
||||
name: Identifier {
|
||||
id: Name("foo"),
|
||||
range: 58..61,
|
||||
},
|
||||
type_params: None,
|
||||
parameters: Parameters {
|
||||
range: 61..78,
|
||||
posonlyargs: [],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 62..77,
|
||||
parameter: Parameter {
|
||||
range: 62..77,
|
||||
name: Identifier {
|
||||
id: Name("arg"),
|
||||
range: 62..65,
|
||||
},
|
||||
annotation: Some(
|
||||
Named(
|
||||
ExprNamed {
|
||||
range: 68..76,
|
||||
target: Name(
|
||||
ExprName {
|
||||
range: 68..69,
|
||||
id: Name("x"),
|
||||
ctx: Store,
|
||||
},
|
||||
),
|
||||
value: Name(
|
||||
ExprName {
|
||||
range: 73..76,
|
||||
id: Name("int"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
vararg: None,
|
||||
kwonlyargs: [],
|
||||
kwarg: None,
|
||||
},
|
||||
returns: None,
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 80..83,
|
||||
value: EllipsisLiteral(
|
||||
ExprEllipsisLiteral {
|
||||
range: 80..83,
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
)
|
||||
|
|
|
@ -22,13 +22,13 @@ Module(
|
|||
range: 44..72,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 46..52,
|
||||
value: "outer ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 52..71,
|
||||
expression: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
|
@ -80,13 +80,13 @@ Module(
|
|||
range: 73..106,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 75..81,
|
||||
value: "outer ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 81..105,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -98,11 +98,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 84..104,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 84..103,
|
||||
expression: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
|
@ -128,7 +128,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 103..104,
|
||||
value: " ",
|
||||
},
|
||||
|
@ -164,8 +164,8 @@ Module(
|
|||
FString {
|
||||
range: 107..147,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 111..144,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -176,8 +176,8 @@ Module(
|
|||
FString {
|
||||
range: 112..143,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 116..140,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -188,8 +188,8 @@ Module(
|
|||
FString {
|
||||
range: 117..139,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 119..138,
|
||||
expression: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
|
@ -274,8 +274,8 @@ Module(
|
|||
FString {
|
||||
range: 148..230,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 152..208,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -287,13 +287,13 @@ Module(
|
|||
range: 153..207,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 157..177,
|
||||
value: "# before expression ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 177..204,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -305,13 +305,13 @@ Module(
|
|||
range: 178..203,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 180..185,
|
||||
value: "# aro",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 185..197,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -323,13 +323,13 @@ Module(
|
|||
range: 186..196,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 188..189,
|
||||
value: "#",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 189..194,
|
||||
expression: BinOp(
|
||||
ExprBinOp {
|
||||
|
@ -359,7 +359,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 194..195,
|
||||
value: "#",
|
||||
},
|
||||
|
@ -382,7 +382,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 197..202,
|
||||
value: "und #",
|
||||
},
|
||||
|
@ -422,7 +422,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 208..227,
|
||||
value: " # after expression",
|
||||
},
|
||||
|
@ -454,13 +454,13 @@ Module(
|
|||
range: 231..263,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 233..254,
|
||||
value: "escape outside of \t ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 254..260,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -475,7 +475,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 260..262,
|
||||
value: "\n",
|
||||
},
|
||||
|
@ -507,7 +507,7 @@ Module(
|
|||
range: 264..277,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 266..276,
|
||||
value: "test\"abcd",
|
||||
},
|
||||
|
|
|
@ -22,13 +22,13 @@ Module(
|
|||
range: 44..74,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 46..58,
|
||||
value: "Magic wand: ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 58..73,
|
||||
expression: Subscript(
|
||||
ExprSubscript {
|
||||
|
@ -92,8 +92,8 @@ Module(
|
|||
FString {
|
||||
range: 95..112,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 97..111,
|
||||
expression: Call(
|
||||
ExprCall {
|
||||
|
@ -173,13 +173,13 @@ Module(
|
|||
range: 148..220,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 152..169,
|
||||
value: "A complex trick: ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 169..217,
|
||||
expression: Subscript(
|
||||
ExprSubscript {
|
||||
|
@ -243,8 +243,8 @@ Module(
|
|||
FString {
|
||||
range: 221..254,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 223..253,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -255,8 +255,8 @@ Module(
|
|||
FString {
|
||||
range: 224..252,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 226..251,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -267,8 +267,8 @@ Module(
|
|||
FString {
|
||||
range: 227..250,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 229..249,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -279,8 +279,8 @@ Module(
|
|||
FString {
|
||||
range: 230..248,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 232..247,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -291,8 +291,8 @@ Module(
|
|||
FString {
|
||||
range: 233..246,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 235..245,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -303,8 +303,8 @@ Module(
|
|||
FString {
|
||||
range: 236..244,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 238..243,
|
||||
expression: BinOp(
|
||||
ExprBinOp {
|
||||
|
@ -444,8 +444,8 @@ Module(
|
|||
FString {
|
||||
range: 276..310,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 278..303,
|
||||
expression: FString(
|
||||
ExprFString {
|
||||
|
@ -456,8 +456,8 @@ Module(
|
|||
FString {
|
||||
range: 279..302,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 283..293,
|
||||
expression: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
|
@ -483,7 +483,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 293..299,
|
||||
value: " inner",
|
||||
},
|
||||
|
@ -506,7 +506,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 303..309,
|
||||
value: " outer",
|
||||
},
|
||||
|
@ -538,13 +538,13 @@ Module(
|
|||
range: 336..359,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 338..343,
|
||||
value: "test ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 343..353,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -559,7 +559,7 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 353..358,
|
||||
value: " more",
|
||||
},
|
||||
|
|
|
@ -0,0 +1,584 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/inline/ok/pep750_t_string_py314.py
|
||||
---
|
||||
## AST
|
||||
|
||||
```
|
||||
Module(
|
||||
ModModule {
|
||||
range: 0..403,
|
||||
body: [
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 44..74,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 44..74,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 44..74,
|
||||
elements: [
|
||||
Literal(
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 46..58,
|
||||
value: "Magic wand: ",
|
||||
},
|
||||
),
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 58..73,
|
||||
expression: Subscript(
|
||||
ExprSubscript {
|
||||
range: 60..71,
|
||||
value: Name(
|
||||
ExprName {
|
||||
range: 60..63,
|
||||
id: Name("bag"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
slice: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
range: 64..70,
|
||||
value: StringLiteralValue {
|
||||
inner: Single(
|
||||
StringLiteral {
|
||||
range: 64..70,
|
||||
value: "wand",
|
||||
flags: StringLiteralFlags {
|
||||
quote_style: Single,
|
||||
prefix: Empty,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Single,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 95..112,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 95..112,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 95..112,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 97..111,
|
||||
expression: Call(
|
||||
ExprCall {
|
||||
range: 98..110,
|
||||
func: Attribute(
|
||||
ExprAttribute {
|
||||
range: 98..107,
|
||||
value: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
range: 98..102,
|
||||
value: StringLiteralValue {
|
||||
inner: Single(
|
||||
StringLiteral {
|
||||
range: 98..102,
|
||||
value: "\n",
|
||||
flags: StringLiteralFlags {
|
||||
quote_style: Single,
|
||||
prefix: Empty,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
attr: Identifier {
|
||||
id: Name("join"),
|
||||
range: 103..107,
|
||||
},
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
arguments: Arguments {
|
||||
range: 107..110,
|
||||
args: [
|
||||
Name(
|
||||
ExprName {
|
||||
range: 108..109,
|
||||
id: Name("a"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
],
|
||||
keywords: [],
|
||||
},
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 148..220,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 148..220,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 148..220,
|
||||
elements: [
|
||||
Literal(
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 152..169,
|
||||
value: "A complex trick: ",
|
||||
},
|
||||
),
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 169..217,
|
||||
expression: Subscript(
|
||||
ExprSubscript {
|
||||
range: 175..185,
|
||||
value: Name(
|
||||
ExprName {
|
||||
range: 175..178,
|
||||
id: Name("bag"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
slice: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
range: 179..184,
|
||||
value: StringLiteralValue {
|
||||
inner: Single(
|
||||
StringLiteral {
|
||||
range: 179..184,
|
||||
value: "bag",
|
||||
flags: StringLiteralFlags {
|
||||
quote_style: Single,
|
||||
prefix: Empty,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Single,
|
||||
prefix: Regular,
|
||||
triple_quoted: true,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 221..254,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 221..254,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 221..254,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 223..253,
|
||||
expression: TString(
|
||||
ExprTString {
|
||||
range: 224..252,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 224..252,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 226..251,
|
||||
expression: TString(
|
||||
ExprTString {
|
||||
range: 227..250,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 227..250,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 229..249,
|
||||
expression: TString(
|
||||
ExprTString {
|
||||
range: 230..248,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 230..248,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 232..247,
|
||||
expression: TString(
|
||||
ExprTString {
|
||||
range: 233..246,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 233..246,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 235..245,
|
||||
expression: TString(
|
||||
ExprTString {
|
||||
range: 236..244,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 236..244,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 238..243,
|
||||
expression: BinOp(
|
||||
ExprBinOp {
|
||||
range: 239..242,
|
||||
left: NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 239..240,
|
||||
value: Int(
|
||||
1,
|
||||
),
|
||||
},
|
||||
),
|
||||
op: Add,
|
||||
right: NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 241..242,
|
||||
value: Int(
|
||||
1,
|
||||
),
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 276..310,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 276..310,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 276..310,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 278..303,
|
||||
expression: TString(
|
||||
ExprTString {
|
||||
range: 279..302,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 279..302,
|
||||
elements: [
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 283..293,
|
||||
expression: StringLiteral(
|
||||
ExprStringLiteral {
|
||||
range: 284..292,
|
||||
value: StringLiteralValue {
|
||||
inner: Single(
|
||||
StringLiteral {
|
||||
range: 284..292,
|
||||
value: "nested",
|
||||
flags: StringLiteralFlags {
|
||||
quote_style: Double,
|
||||
prefix: Empty,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
Literal(
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 293..299,
|
||||
value: " inner",
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Single,
|
||||
prefix: Regular,
|
||||
triple_quoted: true,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
Literal(
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 303..309,
|
||||
value: " outer",
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 336..359,
|
||||
value: TString(
|
||||
ExprTString {
|
||||
range: 336..359,
|
||||
value: TStringValue {
|
||||
inner: Single(
|
||||
TString(
|
||||
TString {
|
||||
range: 336..359,
|
||||
elements: [
|
||||
Literal(
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 338..343,
|
||||
value: "test ",
|
||||
},
|
||||
),
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 343..353,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
range: 344..345,
|
||||
id: Name("a"),
|
||||
ctx: Load,
|
||||
},
|
||||
),
|
||||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: None,
|
||||
},
|
||||
),
|
||||
Literal(
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 353..358,
|
||||
value: " more",
|
||||
},
|
||||
),
|
||||
],
|
||||
flags: TStringFlags {
|
||||
quote_style: Double,
|
||||
prefix: Regular,
|
||||
triple_quoted: false,
|
||||
},
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
)
|
||||
```
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/valid/statement/ambiguous_lpar_with_items.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -945,8 +944,8 @@ Module(
|
|||
FString {
|
||||
range: 1186..1201,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 1188..1200,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
@ -958,11 +957,11 @@ Module(
|
|||
debug_text: None,
|
||||
conversion: None,
|
||||
format_spec: Some(
|
||||
FStringFormatSpec {
|
||||
InterpolatedStringFormatSpec {
|
||||
range: 1195..1199,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 1195..1199,
|
||||
value: "= 42",
|
||||
},
|
||||
|
@ -1017,8 +1016,8 @@ Module(
|
|||
FString {
|
||||
range: 1214..1231,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 1216..1230,
|
||||
expression: Named(
|
||||
ExprNamed {
|
||||
|
|
|
@ -3767,8 +3767,8 @@ Module(
|
|||
FString {
|
||||
range: 2932..2938,
|
||||
elements: [
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 2934..2937,
|
||||
expression: Name(
|
||||
ExprName {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/tests/fixtures.rs
|
||||
input_file: crates/ruff_python_parser/resources/valid/statement/try.py
|
||||
snapshot_kind: text
|
||||
---
|
||||
## AST
|
||||
|
||||
|
@ -577,13 +576,13 @@ Module(
|
|||
range: 505..524,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 507..514,
|
||||
value: "caught ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 514..523,
|
||||
expression: Call(
|
||||
ExprCall {
|
||||
|
@ -682,13 +681,13 @@ Module(
|
|||
range: 557..576,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 559..566,
|
||||
value: "caught ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 566..575,
|
||||
expression: Call(
|
||||
ExprCall {
|
||||
|
@ -955,13 +954,13 @@ Module(
|
|||
range: 704..750,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 706..713,
|
||||
value: "caught ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 713..722,
|
||||
expression: Call(
|
||||
ExprCall {
|
||||
|
@ -994,13 +993,13 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 722..735,
|
||||
value: " with nested ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 735..749,
|
||||
expression: Attribute(
|
||||
ExprAttribute {
|
||||
|
@ -1091,13 +1090,13 @@ Module(
|
|||
range: 784..830,
|
||||
elements: [
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 786..793,
|
||||
value: "caught ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 793..802,
|
||||
expression: Call(
|
||||
ExprCall {
|
||||
|
@ -1130,13 +1129,13 @@ Module(
|
|||
},
|
||||
),
|
||||
Literal(
|
||||
FStringLiteralElement {
|
||||
InterpolatedStringLiteralElement {
|
||||
range: 802..815,
|
||||
value: " with nested ",
|
||||
},
|
||||
),
|
||||
Expression(
|
||||
FStringExpressionElement {
|
||||
Interpolation(
|
||||
InterpolatedElement {
|
||||
range: 815..829,
|
||||
expression: Attribute(
|
||||
ExprAttribute {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue