[ty] AST garbage collection (#18482)

## Summary

Garbage collect ASTs once we are done checking a given file. Queries
with a cross-file dependency on the AST will reparse the file on demand.
This reduces ty's peak memory usage by ~20-30%.

The primary change of this PR is adding a `node_index` field to every
AST node, that is assigned by the parser. `ParsedModule` can use this to
create a flat index of AST nodes any time the file is parsed (or
reparsed). This allows `AstNodeRef` to simply index into the current
instance of the `ParsedModule`, instead of storing a pointer directly.

The indices are somewhat hackily (using an atomic integer) assigned by
the `parsed_module` query instead of by the parser directly. Assigning
the indices in source-order in the (recursive) parser turns out to be
difficult, and collecting the nodes during semantic indexing is
impossible as `SemanticIndex` does not hold onto a specific
`ParsedModuleRef`, which the pointers in the flat AST are tied to. This
means that we have to do an extra AST traversal to assign and collect
the nodes into a flat index, but the small performance impact (~3% on
cold runs) seems worth it for the memory savings.

Part of https://github.com/astral-sh/ty/issues/214.
This commit is contained in:
Ibraheem Ahmed 2025-06-13 08:40:11 -04:00 committed by GitHub
parent 76d9009a6e
commit c9dff5c7d5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
824 changed files with 25243 additions and 804 deletions

View file

@ -7,13 +7,16 @@ input_file: crates/ruff_python_parser/resources/inline/err/ann_assign_stmt_inval
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..63,
body: [
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 0..11,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Store,
@ -21,9 +24,11 @@ Module(
),
annotation: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 3..7,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 4..7,
id: Name("int"),
ctx: Load,
@ -35,6 +40,7 @@ Module(
value: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 10..11,
value: Int(
1,
@ -47,9 +53,11 @@ Module(
),
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 12..26,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 12..13,
id: Name("x"),
ctx: Store,
@ -57,10 +65,12 @@ Module(
),
annotation: Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 15..22,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 21..22,
id: Name("a"),
ctx: Load,
@ -72,6 +82,7 @@ Module(
value: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 25..26,
value: Int(
1,
@ -84,9 +95,11 @@ Module(
),
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 27..46,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 27..28,
id: Name("x"),
ctx: Store,
@ -94,9 +107,11 @@ Module(
),
annotation: YieldFrom(
ExprYieldFrom {
node_index: AtomicNodeIndex(..),
range: 30..42,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 41..42,
id: Name("b"),
ctx: Load,
@ -107,6 +122,7 @@ Module(
value: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 45..46,
value: Int(
1,
@ -119,9 +135,11 @@ Module(
),
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 47..51,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 47..48,
id: Name("x"),
ctx: Store,
@ -129,6 +147,7 @@ Module(
),
annotation: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 50..51,
id: Name("y"),
ctx: Load,
@ -140,10 +159,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 55..62,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 55..58,
id: Name("int"),
ctx: Store,
@ -152,6 +173,7 @@ Module(
],
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 61..62,
value: Int(
1,

View file

@ -1,25 +1,28 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/ann_assign_stmt_invalid_target.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..170,
body: [
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 0..18,
target: StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 0..5,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 0..5,
node_index: AtomicNodeIndex(..),
value: "abc",
flags: StringLiteralFlags {
quote_style: Double,
@ -33,6 +36,7 @@ Module(
),
annotation: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 7..10,
id: Name("str"),
ctx: Load,
@ -41,11 +45,13 @@ Module(
value: Some(
StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 13..18,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 13..18,
node_index: AtomicNodeIndex(..),
value: "def",
flags: StringLiteralFlags {
quote_style: Double,
@ -63,12 +69,15 @@ Module(
),
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 19..37,
target: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 19..25,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 19..23,
id: Name("call"),
ctx: Load,
@ -76,6 +85,7 @@ Module(
),
arguments: Arguments {
range: 23..25,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [],
},
@ -83,6 +93,7 @@ Module(
),
annotation: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 27..30,
id: Name("str"),
ctx: Load,
@ -91,11 +102,13 @@ Module(
value: Some(
StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 33..37,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 33..37,
node_index: AtomicNodeIndex(..),
value: "no",
flags: StringLiteralFlags {
quote_style: Double,
@ -113,12 +126,15 @@ Module(
),
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 38..52,
target: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 38..40,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 39..40,
id: Name("x"),
ctx: Store,
@ -129,6 +145,7 @@ Module(
),
annotation: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 42..45,
id: Name("int"),
ctx: Load,
@ -137,10 +154,12 @@ Module(
value: Some(
Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 48..52,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 48..49,
value: Int(
1,
@ -149,6 +168,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 51..52,
value: Int(
2,
@ -166,13 +186,16 @@ Module(
),
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 72..83,
target: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 72..74,
elts: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 72..73,
id: Name("x"),
ctx: Store,
@ -185,6 +208,7 @@ Module(
),
annotation: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 76..79,
id: Name("int"),
ctx: Load,
@ -193,6 +217,7 @@ Module(
value: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 82..83,
value: Int(
1,
@ -205,13 +230,16 @@ Module(
),
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 84..100,
target: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 84..88,
elts: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 84..85,
id: Name("x"),
ctx: Store,
@ -219,6 +247,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 87..88,
id: Name("y"),
ctx: Store,
@ -231,6 +260,7 @@ Module(
),
annotation: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 90..93,
id: Name("int"),
ctx: Load,
@ -239,10 +269,12 @@ Module(
value: Some(
Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 96..100,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 96..97,
value: Int(
1,
@ -251,6 +283,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 99..100,
value: Int(
2,
@ -268,13 +301,16 @@ Module(
),
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 101..119,
target: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 101..107,
elts: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 102..103,
id: Name("x"),
ctx: Store,
@ -282,6 +318,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 105..106,
id: Name("y"),
ctx: Store,
@ -294,6 +331,7 @@ Module(
),
annotation: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 109..112,
id: Name("int"),
ctx: Load,
@ -302,10 +340,12 @@ Module(
value: Some(
Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 115..119,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 115..116,
value: Int(
1,
@ -314,6 +354,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 118..119,
value: Int(
2,
@ -331,13 +372,16 @@ Module(
),
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 138..150,
target: List(
ExprList {
node_index: AtomicNodeIndex(..),
range: 138..141,
elts: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 139..140,
id: Name("x"),
ctx: Store,
@ -349,6 +393,7 @@ Module(
),
annotation: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 143..146,
id: Name("int"),
ctx: Load,
@ -357,6 +402,7 @@ Module(
value: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 149..150,
value: Int(
1,
@ -369,13 +415,16 @@ Module(
),
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 151..169,
target: List(
ExprList {
node_index: AtomicNodeIndex(..),
range: 151..157,
elts: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 152..153,
id: Name("x"),
ctx: Store,
@ -383,6 +432,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 155..156,
id: Name("y"),
ctx: Store,
@ -394,6 +444,7 @@ Module(
),
annotation: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 159..162,
id: Name("int"),
ctx: Load,
@ -402,10 +453,12 @@ Module(
value: Some(
Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 165..169,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 165..166,
value: Int(
1,
@ -414,6 +467,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 168..169,
value: Int(
2,

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/ann_assign_stmt_invalid_value.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..65,
body: [
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 0..17,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Store,
@ -22,6 +24,7 @@ Module(
),
annotation: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 3..6,
id: Name("Any"),
ctx: Load,
@ -30,14 +33,17 @@ Module(
value: Some(
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 9..17,
value: BoolOp(
ExprBoolOp {
node_index: AtomicNodeIndex(..),
range: 10..17,
op: And,
values: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 10..11,
id: Name("a"),
ctx: Load,
@ -45,6 +51,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 16..17,
id: Name("b"),
ctx: Load,
@ -62,9 +69,11 @@ Module(
),
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 18..28,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 18..19,
id: Name("x"),
ctx: Store,
@ -72,6 +81,7 @@ Module(
),
annotation: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 21..24,
id: Name("Any"),
ctx: Load,
@ -80,6 +90,7 @@ Module(
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 27..28,
id: Name("x"),
ctx: Load,
@ -91,9 +102,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 32..33,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 32..33,
value: Int(
1,
@ -104,9 +117,11 @@ Module(
),
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 34..64,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 34..35,
id: Name("x"),
ctx: Store,
@ -114,6 +129,7 @@ Module(
),
annotation: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 37..41,
id: Name("list"),
ctx: Load,
@ -122,10 +138,12 @@ Module(
value: Some(
List(
ExprList {
node_index: AtomicNodeIndex(..),
range: 44..64,
elts: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 45..46,
id: Name("x"),
ctx: Load,
@ -133,12 +151,15 @@ Module(
),
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 48..54,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 49..54,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 49..50,
id: Name("a"),
ctx: Load,
@ -147,6 +168,7 @@ Module(
op: BitOr,
right: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 53..54,
id: Name("b"),
ctx: Load,
@ -159,14 +181,17 @@ Module(
),
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 56..63,
value: BoolOp(
ExprBoolOp {
node_index: AtomicNodeIndex(..),
range: 57..63,
op: Or,
values: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 57..58,
id: Name("a"),
ctx: Load,
@ -174,6 +199,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 62..63,
id: Name("b"),
ctx: Load,

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/ann_assign_stmt_missing_rhs.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..9,
body: [
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 0..8,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Store,
@ -22,6 +24,7 @@ Module(
),
annotation: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 3..6,
id: Name("int"),
ctx: Load,

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/ann_assign_stmt_type_alias_annotation.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..37,
body: [
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 0..7,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("a"),
ctx: Store,
@ -22,6 +24,7 @@ Module(
),
annotation: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 3..7,
id: Name("type"),
ctx: Load,
@ -33,10 +36,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 8..15,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 8..9,
id: Name("X"),
ctx: Store,
@ -45,6 +50,7 @@ Module(
],
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 12..15,
id: Name("int"),
ctx: Load,
@ -54,13 +60,16 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 16..28,
value: Lambda(
ExprLambda {
node_index: AtomicNodeIndex(..),
range: 16..28,
parameters: None,
body: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 24..28,
id: Name("type"),
ctx: Load,
@ -72,10 +81,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 29..36,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 29..30,
id: Name("X"),
ctx: Store,
@ -84,6 +95,7 @@ Module(
],
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 33..36,
id: Name("int"),
ctx: Load,

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/inline/err/args_unparenthesized_
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..92,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..28,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..28,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..3,
id: Name("sum"),
ctx: Load,
@ -24,12 +28,15 @@ Module(
),
arguments: Arguments {
range: 3..28,
node_index: AtomicNodeIndex(..),
args: [
Generator(
ExprGenerator {
node_index: AtomicNodeIndex(..),
range: 4..24,
elt: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 4..5,
id: Name("x"),
ctx: Load,
@ -38,8 +45,10 @@ Module(
generators: [
Comprehension {
range: 6..24,
node_index: AtomicNodeIndex(..),
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 10..11,
id: Name("x"),
ctx: Store,
@ -47,9 +56,11 @@ Module(
),
iter: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 15..24,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 15..20,
id: Name("range"),
ctx: Load,
@ -57,9 +68,11 @@ Module(
),
arguments: Arguments {
range: 20..24,
node_index: AtomicNodeIndex(..),
args: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 21..23,
value: Int(
10,
@ -80,6 +93,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 26..27,
value: Int(
5,
@ -95,12 +109,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 29..64,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 29..64,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 29..34,
id: Name("total"),
ctx: Load,
@ -108,9 +125,11 @@ Module(
),
arguments: Arguments {
range: 34..64,
node_index: AtomicNodeIndex(..),
args: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 35..36,
value: Int(
1,
@ -119,6 +138,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 38..39,
value: Int(
2,
@ -127,9 +147,11 @@ Module(
),
Generator(
ExprGenerator {
node_index: AtomicNodeIndex(..),
range: 41..60,
elt: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 41..42,
id: Name("x"),
ctx: Load,
@ -138,8 +160,10 @@ Module(
generators: [
Comprehension {
range: 43..60,
node_index: AtomicNodeIndex(..),
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 47..48,
id: Name("x"),
ctx: Store,
@ -147,9 +171,11 @@ Module(
),
iter: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 52..60,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 52..57,
id: Name("range"),
ctx: Load,
@ -157,9 +183,11 @@ Module(
),
arguments: Arguments {
range: 57..60,
node_index: AtomicNodeIndex(..),
args: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 58..59,
value: Int(
5,
@ -180,6 +208,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 62..63,
value: Int(
6,
@ -195,12 +224,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 65..91,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 65..91,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 65..68,
id: Name("sum"),
ctx: Load,
@ -208,12 +240,15 @@ Module(
),
arguments: Arguments {
range: 68..91,
node_index: AtomicNodeIndex(..),
args: [
Generator(
ExprGenerator {
node_index: AtomicNodeIndex(..),
range: 69..89,
elt: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 69..70,
id: Name("x"),
ctx: Load,
@ -222,8 +257,10 @@ Module(
generators: [
Comprehension {
range: 71..89,
node_index: AtomicNodeIndex(..),
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 75..76,
id: Name("x"),
ctx: Store,
@ -231,9 +268,11 @@ Module(
),
iter: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 80..89,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 80..85,
id: Name("range"),
ctx: Load,
@ -241,9 +280,11 @@ Module(
),
arguments: Arguments {
range: 85..89,
node_index: AtomicNodeIndex(..),
args: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 86..88,
value: Int(
10,

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/assert_empty_msg.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..10,
body: [
Assert(
StmtAssert {
node_index: AtomicNodeIndex(..),
range: 0..9,
test: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 7..8,
id: Name("x"),
ctx: Load,

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/assert_empty_test.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..7,
body: [
Assert(
StmtAssert {
node_index: AtomicNodeIndex(..),
range: 0..6,
test: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 6..6,
id: Name(""),
ctx: Invalid,

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/assert_invalid_msg_expr.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..83,
body: [
Assert(
StmtAssert {
node_index: AtomicNodeIndex(..),
range: 0..16,
test: BooleanLiteral(
ExprBooleanLiteral {
node_index: AtomicNodeIndex(..),
range: 7..12,
value: false,
},
@ -22,9 +24,11 @@ Module(
msg: Some(
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 14..16,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 15..16,
id: Name("x"),
ctx: Load,
@ -38,9 +42,11 @@ Module(
),
Assert(
StmtAssert {
node_index: AtomicNodeIndex(..),
range: 17..30,
test: BooleanLiteral(
ExprBooleanLiteral {
node_index: AtomicNodeIndex(..),
range: 24..29,
value: false,
},
@ -50,9 +56,11 @@ Module(
),
Assert(
StmtAssert {
node_index: AtomicNodeIndex(..),
range: 31..39,
test: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 38..39,
id: Name("x"),
ctx: Load,
@ -63,9 +71,11 @@ Module(
),
Assert(
StmtAssert {
node_index: AtomicNodeIndex(..),
range: 40..61,
test: BooleanLiteral(
ExprBooleanLiteral {
node_index: AtomicNodeIndex(..),
range: 47..52,
value: false,
},
@ -73,10 +83,12 @@ Module(
msg: Some(
Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 54..61,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 60..61,
id: Name("x"),
ctx: Load,
@ -90,9 +102,11 @@ Module(
),
Assert(
StmtAssert {
node_index: AtomicNodeIndex(..),
range: 62..77,
test: BooleanLiteral(
ExprBooleanLiteral {
node_index: AtomicNodeIndex(..),
range: 69..74,
value: false,
},
@ -100,6 +114,7 @@ Module(
msg: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 76..77,
id: Name("x"),
ctx: Load,
@ -110,9 +125,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 81..82,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 81..82,
value: Int(
1,

View file

@ -1,23 +1,26 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/assert_invalid_test_expr.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..55,
body: [
Assert(
StmtAssert {
node_index: AtomicNodeIndex(..),
range: 0..9,
test: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 7..9,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 8..9,
id: Name("x"),
ctx: Load,
@ -31,9 +34,11 @@ Module(
),
Assert(
StmtAssert {
node_index: AtomicNodeIndex(..),
range: 10..23,
test: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 17..23,
id: Name("assert"),
ctx: Load,
@ -44,9 +49,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 24..25,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 24..25,
id: Name("x"),
ctx: Load,
@ -56,13 +63,16 @@ Module(
),
Assert(
StmtAssert {
node_index: AtomicNodeIndex(..),
range: 26..40,
test: Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 33..40,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 39..40,
id: Name("x"),
ctx: Load,
@ -76,9 +86,11 @@ Module(
),
Assert(
StmtAssert {
node_index: AtomicNodeIndex(..),
range: 41..49,
test: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 48..49,
id: Name("x"),
ctx: Load,
@ -89,9 +101,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 53..54,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 53..54,
value: Int(
1,

View file

@ -1,21 +1,23 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/assign_stmt_invalid_target.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..58,
body: [
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 0..5,
targets: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 0..1,
value: Int(
1,
@ -25,6 +27,7 @@ Module(
],
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 4..5,
value: Int(
1,
@ -35,10 +38,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 6..15,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 6..7,
id: Name("x"),
ctx: Store,
@ -46,6 +51,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 10..11,
value: Int(
1,
@ -55,6 +61,7 @@ Module(
],
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 14..15,
value: Int(
2,
@ -65,10 +72,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 16..33,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 16..17,
id: Name("x"),
ctx: Store,
@ -76,6 +85,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 20..21,
value: Int(
1,
@ -84,6 +94,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 24..25,
id: Name("y"),
ctx: Store,
@ -91,6 +102,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 28..29,
value: Int(
2,
@ -100,6 +112,7 @@ Module(
],
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 32..33,
id: Name("z"),
ctx: Load,
@ -109,19 +122,23 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 34..57,
targets: [
List(
ExprList {
node_index: AtomicNodeIndex(..),
range: 34..44,
elts: [
StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 35..38,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 35..38,
node_index: AtomicNodeIndex(..),
value: "a",
flags: StringLiteralFlags {
quote_style: Double,
@ -135,11 +152,13 @@ Module(
),
StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 40..43,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 40..43,
node_index: AtomicNodeIndex(..),
value: "b",
flags: StringLiteralFlags {
quote_style: Double,
@ -158,15 +177,18 @@ Module(
],
value: List(
ExprList {
node_index: AtomicNodeIndex(..),
range: 47..57,
elts: [
StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 48..51,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 48..51,
node_index: AtomicNodeIndex(..),
value: "a",
flags: StringLiteralFlags {
quote_style: Double,
@ -180,11 +202,13 @@ Module(
),
StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 53..56,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 53..56,
node_index: AtomicNodeIndex(..),
value: "b",
flags: StringLiteralFlags {
quote_style: Double,

View file

@ -7,14 +7,17 @@ input_file: crates/ruff_python_parser/resources/inline/err/assign_stmt_invalid_v
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..90,
body: [
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 0..15,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Store,
@ -23,18 +26,22 @@ Module(
],
value: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 4..15,
elts: [
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 5..13,
value: BoolOp(
ExprBoolOp {
node_index: AtomicNodeIndex(..),
range: 6..13,
op: And,
values: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 6..7,
id: Name("a"),
ctx: Load,
@ -42,6 +49,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 12..13,
id: Name("b"),
ctx: Load,
@ -62,10 +70,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 16..34,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 16..17,
id: Name("x"),
ctx: Store,
@ -74,10 +84,12 @@ Module(
],
value: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 20..34,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 21..23,
value: Int(
42,
@ -86,13 +98,16 @@ Module(
),
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 25..33,
value: Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 26..33,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 32..33,
id: Name("x"),
ctx: Load,
@ -113,10 +128,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 35..58,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 35..36,
id: Name("x"),
ctx: Store,
@ -125,10 +142,12 @@ Module(
],
value: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 39..58,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 40..42,
value: Int(
42,
@ -137,12 +156,15 @@ Module(
),
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 44..57,
value: YieldFrom(
ExprYieldFrom {
node_index: AtomicNodeIndex(..),
range: 45..57,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 56..57,
id: Name("x"),
ctx: Load,
@ -162,10 +184,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 59..78,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 59..60,
id: Name("x"),
ctx: Store,
@ -174,26 +198,35 @@ Module(
],
value: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 63..78,
elts: [
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 64..76,
value: Lambda(
ExprLambda {
node_index: AtomicNodeIndex(..),
range: 65..76,
parameters: Some(
Parameters {
range: 72..73,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 72..73,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 72..73,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("x"),
range: 72..73,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
@ -207,6 +240,7 @@ Module(
),
body: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 75..76,
id: Name("x"),
ctx: Load,
@ -226,10 +260,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 79..84,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 79..80,
id: Name("x"),
ctx: Store,
@ -238,6 +274,7 @@ Module(
],
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 83..84,
id: Name("x"),
ctx: Load,
@ -247,9 +284,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 88..89,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 88..89,
value: Int(
1,

View file

@ -1,21 +1,23 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/assign_stmt_keyword_target.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..42,
body: [
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 0..12,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("a"),
ctx: Store,
@ -23,6 +25,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 4..8,
id: Name("pass"),
ctx: Store,
@ -31,6 +34,7 @@ Module(
],
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 11..12,
id: Name("c"),
ctx: Load,
@ -40,12 +44,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 13..18,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 13..18,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 13..14,
id: Name("a"),
ctx: Load,
@ -54,6 +61,7 @@ Module(
op: Add,
right: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 17..18,
id: Name("b"),
ctx: Load,
@ -65,10 +73,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 19..35,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 19..20,
id: Name("a"),
ctx: Store,
@ -76,6 +86,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 23..24,
id: Name("b"),
ctx: Store,
@ -83,6 +94,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 27..31,
id: Name("pass"),
ctx: Store,
@ -91,6 +103,7 @@ Module(
],
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 34..35,
id: Name("c"),
ctx: Load,
@ -100,12 +113,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 36..41,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 36..41,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 36..37,
id: Name("a"),
ctx: Load,
@ -114,6 +130,7 @@ Module(
op: Add,
right: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 40..41,
id: Name("b"),
ctx: Load,

View file

@ -1,21 +1,23 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/assign_stmt_missing_rhs.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..38,
body: [
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 0..3,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Store,
@ -24,6 +26,7 @@ Module(
],
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 3..3,
id: Name(""),
ctx: Invalid,
@ -33,12 +36,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 4..9,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 4..9,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 4..5,
value: Int(
1,
@ -48,6 +54,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 8..9,
value: Int(
1,
@ -60,10 +67,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 10..17,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 10..11,
id: Name("x"),
ctx: Store,
@ -71,6 +80,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 14..15,
id: Name("y"),
ctx: Store,
@ -79,6 +89,7 @@ Module(
],
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 17..17,
id: Name(""),
ctx: Invalid,
@ -88,12 +99,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 18..23,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 18..23,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 18..19,
value: Int(
2,
@ -103,6 +117,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 22..23,
value: Int(
2,
@ -115,10 +130,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 24..31,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 24..25,
id: Name("x"),
ctx: Store,
@ -126,6 +143,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 27..27,
id: Name(""),
ctx: Store,
@ -134,6 +152,7 @@ Module(
],
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 30..31,
id: Name("y"),
ctx: Load,
@ -143,12 +162,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 32..37,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 32..37,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 32..33,
value: Int(
3,
@ -158,6 +180,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 36..37,
value: Int(
3,

View file

@ -7,14 +7,17 @@ input_file: crates/ruff_python_parser/resources/inline/err/assign_stmt_starred_e
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..45,
body: [
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 0..9,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("_"),
ctx: Store,
@ -23,13 +26,16 @@ Module(
],
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 4..9,
value: List(
ExprList {
node_index: AtomicNodeIndex(..),
range: 5..9,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 6..8,
value: Int(
42,
@ -47,10 +53,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 10..19,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 10..11,
id: Name("_"),
ctx: Store,
@ -59,13 +67,16 @@ Module(
],
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 14..19,
value: Set(
ExprSet {
node_index: AtomicNodeIndex(..),
range: 15..19,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 16..18,
value: Int(
42,
@ -82,10 +93,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 20..31,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 20..21,
id: Name("_"),
ctx: Store,
@ -94,12 +107,15 @@ Module(
],
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 24..31,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 25..31,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 25..29,
id: Name("list"),
ctx: Load,
@ -107,6 +123,7 @@ Module(
),
arguments: Arguments {
range: 29..31,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [],
},
@ -119,10 +136,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 32..44,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 32..33,
id: Name("_"),
ctx: Store,
@ -131,12 +150,15 @@ Module(
],
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 36..44,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 38..43,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 38..39,
id: Name("p"),
ctx: Load,
@ -145,6 +167,7 @@ Module(
op: Add,
right: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 42..43,
id: Name("q"),
ctx: Load,

View file

@ -1,31 +1,35 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/async_unexpected_token.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..116,
body: [
ClassDef(
StmtClassDef {
node_index: AtomicNodeIndex(..),
range: 6..20,
decorator_list: [],
name: Identifier {
id: Name("Foo"),
range: 12..15,
node_index: AtomicNodeIndex(..),
},
type_params: None,
arguments: None,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 17..20,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 17..20,
},
),
@ -36,9 +40,11 @@ Module(
),
While(
StmtWhile {
node_index: AtomicNodeIndex(..),
range: 27..42,
test: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 33..37,
id: Name("test"),
ctx: Load,
@ -47,9 +53,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 39..42,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 39..42,
},
),
@ -61,10 +69,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 49..54,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 49..50,
id: Name("x"),
ctx: Store,
@ -73,6 +83,7 @@ Module(
],
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 53..54,
value: Int(
1,
@ -83,16 +94,21 @@ Module(
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 61..81,
is_async: true,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 71..74,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 74..76,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -103,9 +119,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 78..81,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 78..81,
},
),
@ -116,9 +134,11 @@ Module(
),
Match(
StmtMatch {
node_index: AtomicNodeIndex(..),
range: 88..115,
subject: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 94..98,
id: Name("test"),
ctx: Load,
@ -127,9 +147,11 @@ Module(
cases: [
MatchCase {
range: 104..115,
node_index: AtomicNodeIndex(..),
pattern: MatchAs(
PatternMatchAs {
range: 109..110,
node_index: AtomicNodeIndex(..),
pattern: None,
name: None,
},
@ -138,9 +160,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 112..115,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 112..115,
},
),

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/aug_assign_stmt_invalid_target.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..59,
body: [
AugAssign(
StmtAugAssign {
node_index: AtomicNodeIndex(..),
range: 0..6,
target: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 0..1,
value: Int(
1,
@ -24,6 +26,7 @@ Module(
op: Add,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 5..6,
value: Int(
1,
@ -34,14 +37,17 @@ Module(
),
AugAssign(
StmtAugAssign {
node_index: AtomicNodeIndex(..),
range: 7..17,
target: StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 7..10,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 7..10,
node_index: AtomicNodeIndex(..),
value: "a",
flags: StringLiteralFlags {
quote_style: Double,
@ -56,11 +62,13 @@ Module(
op: Add,
value: StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 14..17,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 14..17,
node_index: AtomicNodeIndex(..),
value: "b",
flags: StringLiteralFlags {
quote_style: Double,
@ -76,12 +84,15 @@ Module(
),
AugAssign(
StmtAugAssign {
node_index: AtomicNodeIndex(..),
range: 18..25,
target: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 18..20,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 19..20,
id: Name("x"),
ctx: Store,
@ -93,6 +104,7 @@ Module(
op: Add,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 24..25,
value: Int(
1,
@ -103,14 +115,17 @@ Module(
),
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 26..30,
},
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 34..35,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 34..35,
value: Int(
1,
@ -121,9 +136,11 @@ Module(
),
AugAssign(
StmtAugAssign {
node_index: AtomicNodeIndex(..),
range: 36..45,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 36..37,
id: Name("x"),
ctx: Store,
@ -132,6 +149,7 @@ Module(
op: Add,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 41..45,
id: Name("pass"),
ctx: Load,
@ -141,12 +159,15 @@ Module(
),
AugAssign(
StmtAugAssign {
node_index: AtomicNodeIndex(..),
range: 46..58,
target: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 47..52,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 47..48,
id: Name("x"),
ctx: Load,
@ -155,6 +176,7 @@ Module(
op: Add,
right: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 51..52,
id: Name("y"),
ctx: Load,
@ -165,6 +187,7 @@ Module(
op: Add,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 57..58,
value: Int(
1,

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/aug_assign_stmt_invalid_value.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..77,
body: [
AugAssign(
StmtAugAssign {
node_index: AtomicNodeIndex(..),
range: 0..13,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Store,
@ -23,14 +25,17 @@ Module(
op: Add,
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 5..13,
value: BoolOp(
ExprBoolOp {
node_index: AtomicNodeIndex(..),
range: 6..13,
op: And,
values: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 6..7,
id: Name("a"),
ctx: Load,
@ -38,6 +43,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 12..13,
id: Name("b"),
ctx: Load,
@ -53,9 +59,11 @@ Module(
),
AugAssign(
StmtAugAssign {
node_index: AtomicNodeIndex(..),
range: 14..27,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 14..15,
id: Name("x"),
ctx: Store,
@ -64,13 +72,16 @@ Module(
op: Add,
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 19..27,
value: Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 20..27,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 26..27,
id: Name("x"),
ctx: Load,
@ -86,9 +97,11 @@ Module(
),
AugAssign(
StmtAugAssign {
node_index: AtomicNodeIndex(..),
range: 28..46,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 28..29,
id: Name("x"),
ctx: Store,
@ -97,12 +110,15 @@ Module(
op: Add,
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 33..46,
value: YieldFrom(
ExprYieldFrom {
node_index: AtomicNodeIndex(..),
range: 34..46,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 45..46,
id: Name("x"),
ctx: Load,
@ -117,9 +133,11 @@ Module(
),
AugAssign(
StmtAugAssign {
node_index: AtomicNodeIndex(..),
range: 47..64,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 47..48,
id: Name("x"),
ctx: Store,
@ -128,22 +146,30 @@ Module(
op: Add,
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 52..64,
value: Lambda(
ExprLambda {
node_index: AtomicNodeIndex(..),
range: 53..64,
parameters: Some(
Parameters {
range: 60..61,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 60..61,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 60..61,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("x"),
range: 60..61,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
@ -157,6 +183,7 @@ Module(
),
body: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 63..64,
id: Name("x"),
ctx: Load,
@ -171,9 +198,11 @@ Module(
),
AugAssign(
StmtAugAssign {
node_index: AtomicNodeIndex(..),
range: 65..71,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 65..66,
id: Name("x"),
ctx: Store,
@ -182,6 +211,7 @@ Module(
op: Add,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 70..71,
id: Name("y"),
ctx: Load,
@ -191,9 +221,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 75..76,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 75..76,
value: Int(
1,

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/aug_assign_stmt_missing_rhs.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..27,
body: [
AugAssign(
StmtAugAssign {
node_index: AtomicNodeIndex(..),
range: 0..4,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Store,
@ -23,6 +25,7 @@ Module(
op: Add,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 4..4,
id: Name(""),
ctx: Invalid,
@ -32,12 +35,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 5..10,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 5..10,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 5..6,
value: Int(
1,
@ -47,6 +53,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 9..10,
value: Int(
1,
@ -59,9 +66,11 @@ Module(
),
AugAssign(
StmtAugAssign {
node_index: AtomicNodeIndex(..),
range: 11..17,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 11..12,
id: Name("x"),
ctx: Store,
@ -70,6 +79,7 @@ Module(
op: Add,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 16..17,
id: Name("y"),
ctx: Load,
@ -79,12 +89,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 21..26,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 21..26,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 21..22,
value: Int(
2,
@ -94,6 +107,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 25..26,
value: Int(
2,

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/case_expect_indented_block.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..43,
body: [
Match(
StmtMatch {
node_index: AtomicNodeIndex(..),
range: 0..42,
subject: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 6..13,
id: Name("subject"),
ctx: Load,
@ -23,11 +25,14 @@ Module(
cases: [
MatchCase {
range: 19..26,
node_index: AtomicNodeIndex(..),
pattern: MatchValue(
PatternMatchValue {
range: 24..25,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 24..25,
value: Int(
1,
@ -41,11 +46,14 @@ Module(
},
MatchCase {
range: 31..42,
node_index: AtomicNodeIndex(..),
pattern: MatchValue(
PatternMatchValue {
range: 36..37,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 36..37,
value: Int(
2,
@ -58,9 +66,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 39..42,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 39..42,
},
),

View file

@ -1,22 +1,24 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/class_def_empty_body.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..31,
body: [
ClassDef(
StmtClassDef {
node_index: AtomicNodeIndex(..),
range: 0..10,
decorator_list: [],
name: Identifier {
id: Name("Foo"),
range: 6..9,
node_index: AtomicNodeIndex(..),
},
type_params: None,
arguments: None,
@ -25,16 +27,19 @@ Module(
),
ClassDef(
StmtClassDef {
node_index: AtomicNodeIndex(..),
range: 11..23,
decorator_list: [],
name: Identifier {
id: Name("Foo"),
range: 17..20,
node_index: AtomicNodeIndex(..),
},
type_params: None,
arguments: Some(
Arguments {
range: 20..22,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [],
},
@ -44,10 +49,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 24..30,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 24..25,
id: Name("x"),
ctx: Store,
@ -56,6 +63,7 @@ Module(
],
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 28..30,
value: Int(
42,

View file

@ -1,31 +1,35 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/class_def_missing_name.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..53,
body: [
ClassDef(
StmtClassDef {
node_index: AtomicNodeIndex(..),
range: 0..11,
decorator_list: [],
name: Identifier {
id: Name(""),
range: 5..5,
node_index: AtomicNodeIndex(..),
},
type_params: None,
arguments: None,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 8..11,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 8..11,
},
),
@ -36,16 +40,19 @@ Module(
),
ClassDef(
StmtClassDef {
node_index: AtomicNodeIndex(..),
range: 12..25,
decorator_list: [],
name: Identifier {
id: Name(""),
range: 17..17,
node_index: AtomicNodeIndex(..),
},
type_params: None,
arguments: Some(
Arguments {
range: 18..20,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [],
},
@ -53,9 +60,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 22..25,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 22..25,
},
),
@ -66,28 +75,34 @@ Module(
),
ClassDef(
StmtClassDef {
node_index: AtomicNodeIndex(..),
range: 26..52,
decorator_list: [],
name: Identifier {
id: Name(""),
range: 31..31,
node_index: AtomicNodeIndex(..),
},
type_params: None,
arguments: Some(
Arguments {
range: 32..47,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [
Keyword {
range: 33..46,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name("metaclass"),
range: 33..42,
node_index: AtomicNodeIndex(..),
},
),
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 43..46,
id: Name("ABC"),
ctx: Load,
@ -100,9 +115,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 49..52,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 49..52,
},
),

View file

@ -1,33 +1,38 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/class_def_unclosed_type_param_list.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..41,
body: [
ClassDef(
StmtClassDef {
node_index: AtomicNodeIndex(..),
range: 0..33,
decorator_list: [],
name: Identifier {
id: Name("Foo"),
range: 6..9,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 9..17,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 10..12,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T1"),
range: 10..12,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -36,9 +41,11 @@ Module(
TypeVarTuple(
TypeParamTypeVarTuple {
range: 14..17,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T2"),
range: 15..17,
node_index: AtomicNodeIndex(..),
},
default: None,
},
@ -49,9 +56,11 @@ Module(
arguments: Some(
Arguments {
range: 17..23,
node_index: AtomicNodeIndex(..),
args: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 18..19,
id: Name("a"),
ctx: Load,
@ -59,6 +68,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 21..22,
id: Name("b"),
ctx: Load,
@ -71,6 +81,7 @@ Module(
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 29..33,
},
),
@ -79,10 +90,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 34..40,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 34..35,
id: Name("x"),
ctx: Store,
@ -91,6 +104,7 @@ Module(
],
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 38..40,
value: Int(
10,

View file

@ -7,34 +7,42 @@ input_file: crates/ruff_python_parser/resources/inline/err/class_type_params_py3
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..113,
body: [
ClassDef(
StmtClassDef {
node_index: AtomicNodeIndex(..),
range: 44..95,
decorator_list: [],
name: Identifier {
id: Name("Foo"),
range: 50..53,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 53..90,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 54..69,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("S"),
range: 54..55,
node_index: AtomicNodeIndex(..),
},
bound: Some(
Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 57..69,
elts: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 58..61,
id: Name("str"),
ctx: Load,
@ -42,6 +50,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 63..68,
id: Name("bytes"),
ctx: Load,
@ -59,13 +68,16 @@ Module(
TypeVar(
TypeParamTypeVar {
range: 71..79,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 71..72,
node_index: AtomicNodeIndex(..),
},
bound: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 74..79,
id: Name("float"),
ctx: Load,
@ -78,9 +90,11 @@ Module(
TypeVarTuple(
TypeParamTypeVarTuple {
range: 81..84,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("Ts"),
range: 82..84,
node_index: AtomicNodeIndex(..),
},
default: None,
},
@ -88,9 +102,11 @@ Module(
ParamSpec(
TypeParamParamSpec {
range: 86..89,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("P"),
range: 88..89,
node_index: AtomicNodeIndex(..),
},
default: None,
},
@ -102,9 +118,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 92..95,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 92..95,
},
),
@ -115,15 +133,18 @@ Module(
),
ClassDef(
StmtClassDef {
node_index: AtomicNodeIndex(..),
range: 96..112,
decorator_list: [],
name: Identifier {
id: Name("Foo"),
range: 102..105,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 105..107,
node_index: AtomicNodeIndex(..),
type_params: [],
},
),
@ -131,9 +152,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 109..112,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 109..112,
},
),

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/clause_expect_indented_block.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..171,
body: [
If(
StmtIf {
node_index: AtomicNodeIndex(..),
range: 53..61,
test: BooleanLiteral(
ExprBooleanLiteral {
node_index: AtomicNodeIndex(..),
range: 56..60,
value: true,
},
@ -25,14 +27,17 @@ Module(
),
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 62..66,
},
),
If(
StmtIf {
node_index: AtomicNodeIndex(..),
range: 162..170,
test: BooleanLiteral(
ExprBooleanLiteral {
node_index: AtomicNodeIndex(..),
range: 165..169,
value: true,
},

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/clause_expect_single_statement.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..23,
body: [
If(
StmtIf {
node_index: AtomicNodeIndex(..),
range: 0..8,
test: BooleanLiteral(
ExprBooleanLiteral {
node_index: AtomicNodeIndex(..),
range: 3..7,
value: true,
},
@ -25,9 +27,11 @@ Module(
),
If(
StmtIf {
node_index: AtomicNodeIndex(..),
range: 9..22,
test: BooleanLiteral(
ExprBooleanLiteral {
node_index: AtomicNodeIndex(..),
range: 12..16,
value: true,
},
@ -35,6 +39,7 @@ Module(
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 18..22,
},
),

View file

@ -1,23 +1,26 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/comma_separated_missing_comma.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..15,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..14,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..14,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..4,
id: Name("call"),
ctx: Load,
@ -25,9 +28,11 @@ Module(
),
arguments: Arguments {
range: 4..14,
node_index: AtomicNodeIndex(..),
args: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 12..13,
value: Int(
1,
@ -38,9 +43,11 @@ Module(
keywords: [
Keyword {
range: 5..8,
node_index: AtomicNodeIndex(..),
arg: None,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 7..8,
id: Name("x"),
ctx: Load,

View file

@ -1,24 +1,27 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/comma_separated_missing_comma_between_elements.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..92,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 83..91,
value: List(
ExprList {
node_index: AtomicNodeIndex(..),
range: 83..91,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 84..85,
value: Int(
0,
@ -27,6 +30,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 87..88,
value: Int(
1,
@ -35,6 +39,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 89..90,
value: Int(
2,

View file

@ -1,24 +1,27 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/comma_separated_missing_element_between_commas.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..12,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..11,
value: List(
ExprList {
node_index: AtomicNodeIndex(..),
range: 0..11,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 1..2,
value: Int(
0,
@ -27,6 +30,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 4..5,
value: Int(
1,
@ -35,6 +39,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 9..10,
value: Int(
2,

View file

@ -1,23 +1,26 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/comma_separated_missing_first_element.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..10,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..9,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..9,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..4,
id: Name("call"),
ctx: Load,
@ -25,9 +28,11 @@ Module(
),
arguments: Arguments {
range: 4..9,
node_index: AtomicNodeIndex(..),
args: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 7..8,
value: Int(
1,

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/comprehension_missing_for_after_async.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..28,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..7,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1..6,
id: Name("async"),
ctx: Load,
@ -24,12 +26,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 8..27,
value: Generator(
ExprGenerator {
node_index: AtomicNodeIndex(..),
range: 8..27,
elt: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 9..10,
id: Name("x"),
ctx: Load,
@ -38,8 +43,10 @@ Module(
generators: [
Comprehension {
range: 11..26,
node_index: AtomicNodeIndex(..),
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 17..18,
id: Name("x"),
ctx: Store,
@ -47,6 +54,7 @@ Module(
),
iter: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 22..26,
id: Name("iter"),
ctx: Load,

View file

@ -7,24 +7,29 @@ input_file: crates/ruff_python_parser/resources/inline/err/debug_shadow_class.py
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..82,
body: [
ClassDef(
StmtClassDef {
node_index: AtomicNodeIndex(..),
range: 0..20,
decorator_list: [],
name: Identifier {
id: Name("__debug__"),
range: 6..15,
node_index: AtomicNodeIndex(..),
},
type_params: None,
arguments: None,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 17..20,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 17..20,
},
),
@ -35,22 +40,27 @@ Module(
),
ClassDef(
StmtClassDef {
node_index: AtomicNodeIndex(..),
range: 35..58,
decorator_list: [],
name: Identifier {
id: Name("C"),
range: 41..42,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 42..53,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 43..52,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("__debug__"),
range: 43..52,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -63,9 +73,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 55..58,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 55..58,
},
),

View file

@ -7,20 +7,26 @@ input_file: crates/ruff_python_parser/resources/inline/err/debug_shadow_function
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..125,
body: [
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 0..20,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("__debug__"),
range: 4..13,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 13..15,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -31,9 +37,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 17..20,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 17..20,
},
),
@ -44,23 +52,28 @@ Module(
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 38..61,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("f"),
range: 42..43,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 43..54,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 44..53,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("__debug__"),
range: 44..53,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -71,6 +84,9 @@ Module(
),
parameters: Parameters {
range: 54..56,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -81,9 +97,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 58..61,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 58..61,
},
),
@ -94,25 +112,33 @@ Module(
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 85..106,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("f"),
range: 89..90,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 90..101,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 91..100,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 91..100,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("__debug__"),
range: 91..100,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
@ -127,9 +153,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 103..106,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 103..106,
},
),

View file

@ -7,17 +7,21 @@ input_file: crates/ruff_python_parser/resources/inline/err/debug_shadow_import.p
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..100,
body: [
Import(
StmtImport {
node_index: AtomicNodeIndex(..),
range: 0..16,
names: [
Alias {
range: 7..16,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("__debug__"),
range: 7..16,
node_index: AtomicNodeIndex(..),
},
asname: None,
},
@ -26,18 +30,22 @@ Module(
),
Import(
StmtImport {
node_index: AtomicNodeIndex(..),
range: 17..42,
names: [
Alias {
range: 24..42,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("debug"),
range: 24..29,
node_index: AtomicNodeIndex(..),
},
asname: Some(
Identifier {
id: Name("__debug__"),
range: 33..42,
node_index: AtomicNodeIndex(..),
},
),
},
@ -46,19 +54,23 @@ Module(
),
ImportFrom(
StmtImportFrom {
node_index: AtomicNodeIndex(..),
range: 43..66,
module: Some(
Identifier {
id: Name("x"),
range: 48..49,
node_index: AtomicNodeIndex(..),
},
),
names: [
Alias {
range: 57..66,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("__debug__"),
range: 57..66,
node_index: AtomicNodeIndex(..),
},
asname: None,
},
@ -68,24 +80,29 @@ Module(
),
ImportFrom(
StmtImportFrom {
node_index: AtomicNodeIndex(..),
range: 67..99,
module: Some(
Identifier {
id: Name("x"),
range: 72..73,
node_index: AtomicNodeIndex(..),
},
),
names: [
Alias {
range: 81..99,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("debug"),
range: 81..86,
node_index: AtomicNodeIndex(..),
},
asname: Some(
Identifier {
id: Name("__debug__"),
range: 90..99,
node_index: AtomicNodeIndex(..),
},
),
},

View file

@ -7,13 +7,16 @@ input_file: crates/ruff_python_parser/resources/inline/err/debug_shadow_match.py
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..33,
body: [
Match(
StmtMatch {
node_index: AtomicNodeIndex(..),
range: 0..32,
subject: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 6..7,
id: Name("x"),
ctx: Load,
@ -22,14 +25,17 @@ Module(
cases: [
MatchCase {
range: 13..32,
node_index: AtomicNodeIndex(..),
pattern: MatchAs(
PatternMatchAs {
range: 18..27,
node_index: AtomicNodeIndex(..),
pattern: None,
name: Some(
Identifier {
id: Name("__debug__"),
range: 18..27,
node_index: AtomicNodeIndex(..),
},
),
},
@ -38,9 +44,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 29..32,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 29..32,
},
),

View file

@ -7,17 +7,21 @@ input_file: crates/ruff_python_parser/resources/inline/err/debug_shadow_try.py
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..44,
body: [
Try(
StmtTry {
node_index: AtomicNodeIndex(..),
range: 0..43,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 5..8,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 5..8,
},
),
@ -28,9 +32,11 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 9..43,
node_index: AtomicNodeIndex(..),
type_: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 16..25,
id: Name("Exception"),
ctx: Load,
@ -41,14 +47,17 @@ Module(
Identifier {
id: Name("__debug__"),
range: 29..38,
node_index: AtomicNodeIndex(..),
},
),
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 40..43,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 40..43,
},
),

View file

@ -7,13 +7,16 @@ input_file: crates/ruff_python_parser/resources/inline/err/debug_shadow_type_ali
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..95,
body: [
TypeAlias(
StmtTypeAlias {
node_index: AtomicNodeIndex(..),
range: 0..26,
name: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 5..14,
id: Name("__debug__"),
ctx: Store,
@ -22,9 +25,11 @@ Module(
type_params: None,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
range: 17..26,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 17..21,
id: Name("list"),
ctx: Load,
@ -32,6 +37,7 @@ Module(
),
slice: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 22..25,
id: Name("int"),
ctx: Load,
@ -44,9 +50,11 @@ Module(
),
TypeAlias(
StmtTypeAlias {
node_index: AtomicNodeIndex(..),
range: 67..94,
name: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 72..77,
id: Name("Debug"),
ctx: Store,
@ -55,13 +63,16 @@ Module(
type_params: Some(
TypeParams {
range: 77..88,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 78..87,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("__debug__"),
range: 78..87,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -72,6 +83,7 @@ Module(
),
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 91..94,
id: Name("str"),
ctx: Load,

View file

@ -7,20 +7,25 @@ input_file: crates/ruff_python_parser/resources/inline/err/debug_shadow_with.py
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..39,
body: [
With(
StmtWith {
node_index: AtomicNodeIndex(..),
range: 0..38,
is_async: false,
items: [
WithItem {
range: 5..33,
node_index: AtomicNodeIndex(..),
context_expr: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 5..20,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 5..9,
id: Name("open"),
ctx: Load,
@ -28,14 +33,17 @@ Module(
),
arguments: Arguments {
range: 9..20,
node_index: AtomicNodeIndex(..),
args: [
StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 10..19,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 10..19,
node_index: AtomicNodeIndex(..),
value: "foo.txt",
flags: StringLiteralFlags {
quote_style: Double,
@ -55,6 +63,7 @@ Module(
optional_vars: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 24..33,
id: Name("__debug__"),
ctx: Store,
@ -66,9 +75,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 35..38,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 35..38,
},
),

View file

@ -7,20 +7,26 @@ input_file: crates/ruff_python_parser/resources/inline/err/decorator_await_expre
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..96,
body: [
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 45..95,
is_async: true,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 55..58,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 58..60,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -31,16 +37,20 @@ Module(
body: [
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 66..95,
is_async: false,
decorator_list: [
Decorator {
range: 66..76,
node_index: AtomicNodeIndex(..),
expression: Await(
ExprAwait {
node_index: AtomicNodeIndex(..),
range: 67..76,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 73..76,
id: Name("bar"),
ctx: Load,
@ -53,10 +63,14 @@ Module(
name: Identifier {
id: Name("baz"),
range: 85..88,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 88..90,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -67,9 +81,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 92..95,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 92..95,
},
),

View file

@ -7,23 +7,28 @@ input_file: crates/ruff_python_parser/resources/inline/err/decorator_dict_litera
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..68,
body: [
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 45..67,
is_async: false,
decorator_list: [
Decorator {
range: 45..52,
node_index: AtomicNodeIndex(..),
expression: Dict(
ExprDict {
node_index: AtomicNodeIndex(..),
range: 46..52,
items: [
DictItem {
key: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 47..48,
value: Int(
3,
@ -33,6 +38,7 @@ Module(
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 50..51,
value: Int(
3,
@ -48,10 +54,14 @@ Module(
name: Identifier {
id: Name("bar"),
range: 57..60,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 60..62,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -62,9 +72,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 64..67,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 64..67,
},
),

View file

@ -7,26 +7,33 @@ input_file: crates/ruff_python_parser/resources/inline/err/decorator_expression_
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..89,
body: [
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 45..88,
is_async: false,
decorator_list: [
Decorator {
range: 45..72,
node_index: AtomicNodeIndex(..),
expression: Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
range: 46..72,
value: Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
range: 46..64,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
range: 46..56,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 46..53,
id: Name("buttons"),
ctx: Load,
@ -34,6 +41,7 @@ Module(
),
slice: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 54..55,
value: Int(
0,
@ -46,6 +54,7 @@ Module(
attr: Identifier {
id: Name("clicked"),
range: 57..64,
node_index: AtomicNodeIndex(..),
},
ctx: Load,
},
@ -53,6 +62,7 @@ Module(
attr: Identifier {
id: Name("connect"),
range: 65..72,
node_index: AtomicNodeIndex(..),
},
ctx: Load,
},
@ -62,10 +72,14 @@ Module(
name: Identifier {
id: Name("spam"),
range: 77..81,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 81..83,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -76,9 +90,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 85..88,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 85..88,
},
),

View file

@ -7,17 +7,21 @@ input_file: crates/ruff_python_parser/resources/inline/err/decorator_float_liter
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..66,
body: [
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 45..65,
is_async: false,
decorator_list: [
Decorator {
range: 45..50,
node_index: AtomicNodeIndex(..),
expression: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 46..50,
value: Float(
3.14,
@ -29,10 +33,14 @@ Module(
name: Identifier {
id: Name("bar"),
range: 55..58,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 58..60,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -43,9 +51,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 62..65,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 62..65,
},
),

View file

@ -1,27 +1,31 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/decorator_invalid_expression.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..56,
body: [
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 0..55,
is_async: false,
decorator_list: [
Decorator {
range: 0..3,
node_index: AtomicNodeIndex(..),
expression: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 1..3,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 2..3,
id: Name("x"),
ctx: Load,
@ -33,11 +37,14 @@ Module(
},
Decorator {
range: 4..9,
node_index: AtomicNodeIndex(..),
expression: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 6..8,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 7..8,
id: Name("x"),
ctx: Load,
@ -49,11 +56,14 @@ Module(
},
Decorator {
range: 10..17,
node_index: AtomicNodeIndex(..),
expression: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 13..15,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 14..15,
id: Name("x"),
ctx: Load,
@ -65,12 +75,15 @@ Module(
},
Decorator {
range: 18..26,
node_index: AtomicNodeIndex(..),
expression: Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 19..26,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 25..26,
id: Name("x"),
ctx: Load,
@ -82,11 +95,14 @@ Module(
},
Decorator {
range: 27..40,
node_index: AtomicNodeIndex(..),
expression: YieldFrom(
ExprYieldFrom {
node_index: AtomicNodeIndex(..),
range: 28..40,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 39..40,
id: Name("x"),
ctx: Load,
@ -99,10 +115,14 @@ Module(
name: Identifier {
id: Name("foo"),
range: 45..48,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 48..50,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -113,9 +133,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 52..55,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 52..55,
},
),

View file

@ -1,23 +1,26 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/decorator_missing_expression.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..51,
body: [
AnnAssign(
StmtAnnAssign {
node_index: AtomicNodeIndex(..),
range: 5..15,
target: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 5..10,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 5..8,
id: Name("foo"),
ctx: Load,
@ -25,6 +28,7 @@ Module(
),
arguments: Arguments {
range: 8..10,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [],
},
@ -32,6 +36,7 @@ Module(
),
annotation: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 12..15,
},
),
@ -41,13 +46,16 @@ Module(
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 16..32,
is_async: false,
decorator_list: [
Decorator {
range: 16..17,
node_index: AtomicNodeIndex(..),
expression: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 17..17,
id: Name(""),
ctx: Invalid,
@ -58,10 +66,14 @@ Module(
name: Identifier {
id: Name("foo"),
range: 22..25,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 25..27,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -72,9 +84,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 29..32,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 29..32,
},
),
@ -85,16 +99,20 @@ Module(
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 33..50,
is_async: false,
decorator_list: [
Decorator {
range: 33..35,
node_index: AtomicNodeIndex(..),
expression: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 34..35,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 34..34,
id: Name(""),
ctx: Invalid,
@ -103,6 +121,7 @@ Module(
op: MatMult,
right: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 35..35,
id: Name(""),
ctx: Invalid,
@ -115,10 +134,14 @@ Module(
name: Identifier {
id: Name("foo"),
range: 40..43,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 43..45,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -129,9 +152,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 47..50,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 47..50,
},
),

View file

@ -1,24 +1,27 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/decorator_missing_newline.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..60,
body: [
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 0..17,
is_async: false,
decorator_list: [
Decorator {
range: 0..2,
node_index: AtomicNodeIndex(..),
expression: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1..2,
id: Name("x"),
ctx: Load,
@ -29,10 +32,14 @@ Module(
name: Identifier {
id: Name("foo"),
range: 7..10,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 10..12,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -43,9 +50,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 14..17,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 14..17,
},
),
@ -56,13 +65,16 @@ Module(
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 18..41,
is_async: true,
decorator_list: [
Decorator {
range: 18..20,
node_index: AtomicNodeIndex(..),
expression: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 19..20,
id: Name("x"),
ctx: Load,
@ -73,10 +85,14 @@ Module(
name: Identifier {
id: Name("foo"),
range: 31..34,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 34..36,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -87,9 +103,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 38..41,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 38..41,
},
),
@ -100,12 +118,15 @@ Module(
),
ClassDef(
StmtClassDef {
node_index: AtomicNodeIndex(..),
range: 42..59,
decorator_list: [
Decorator {
range: 42..44,
node_index: AtomicNodeIndex(..),
expression: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 43..44,
id: Name("x"),
ctx: Load,
@ -116,15 +137,18 @@ Module(
name: Identifier {
id: Name("Foo"),
range: 51..54,
node_index: AtomicNodeIndex(..),
},
type_params: None,
arguments: None,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 56..59,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 56..59,
},
),

View file

@ -7,23 +7,29 @@ input_file: crates/ruff_python_parser/resources/inline/err/decorator_named_expre
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..85,
body: [
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 45..84,
is_async: false,
decorator_list: [
Decorator {
range: 45..69,
node_index: AtomicNodeIndex(..),
expression: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 46..69,
func: Named(
ExprNamed {
node_index: AtomicNodeIndex(..),
range: 47..63,
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 47..48,
id: Name("x"),
ctx: Store,
@ -31,19 +37,26 @@ Module(
),
value: Lambda(
ExprLambda {
node_index: AtomicNodeIndex(..),
range: 52..63,
parameters: Some(
Parameters {
range: 59..60,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 59..60,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 59..60,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("x"),
range: 59..60,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
@ -57,6 +70,7 @@ Module(
),
body: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 62..63,
id: Name("x"),
ctx: Load,
@ -68,9 +82,11 @@ Module(
),
arguments: Arguments {
range: 64..69,
node_index: AtomicNodeIndex(..),
args: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 65..68,
id: Name("foo"),
ctx: Load,
@ -86,10 +102,14 @@ Module(
name: Identifier {
id: Name("bar"),
range: 74..77,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 77..79,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -100,9 +120,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 81..84,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 81..84,
},
),

View file

@ -7,26 +7,33 @@ input_file: crates/ruff_python_parser/resources/inline/err/decorator_non_topleve
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..73,
body: [
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 45..72,
is_async: false,
decorator_list: [
Decorator {
range: 45..57,
node_index: AtomicNodeIndex(..),
expression: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 46..57,
func: Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
range: 46..55,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 46..51,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 46..49,
id: Name("foo"),
ctx: Load,
@ -34,6 +41,7 @@ Module(
),
arguments: Arguments {
range: 49..51,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [],
},
@ -42,12 +50,14 @@ Module(
attr: Identifier {
id: Name("bar"),
range: 52..55,
node_index: AtomicNodeIndex(..),
},
ctx: Load,
},
),
arguments: Arguments {
range: 55..57,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [],
},
@ -58,10 +68,14 @@ Module(
name: Identifier {
id: Name("baz"),
range: 62..65,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 65..67,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -72,9 +86,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 69..72,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 69..72,
},
),

View file

@ -1,24 +1,27 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/decorator_unexpected_token.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..34,
body: [
With(
StmtWith {
node_index: AtomicNodeIndex(..),
range: 5..22,
is_async: true,
items: [
WithItem {
range: 16..17,
node_index: AtomicNodeIndex(..),
context_expr: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 16..17,
id: Name("x"),
ctx: Load,
@ -30,9 +33,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 19..22,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 19..22,
},
),
@ -43,10 +48,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 28..33,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 28..29,
id: Name("x"),
ctx: Store,
@ -55,6 +62,7 @@ Module(
],
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 32..33,
value: Int(
1,

View file

@ -7,14 +7,17 @@ input_file: crates/ruff_python_parser/resources/inline/err/del_debug_py39.py
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..57,
body: [
Delete(
StmtDelete {
node_index: AtomicNodeIndex(..),
range: 43..56,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 47..56,
id: Name("__debug__"),
ctx: Del,

View file

@ -7,14 +7,17 @@ input_file: crates/ruff_python_parser/resources/inline/err/del_incomplete_target
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..24,
body: [
Delete(
StmtDelete {
node_index: AtomicNodeIndex(..),
range: 0..9,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 4..5,
id: Name("x"),
ctx: Del,
@ -22,9 +25,11 @@ Module(
),
Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
range: 7..9,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 7..8,
id: Name("y"),
ctx: Load,
@ -33,6 +38,7 @@ Module(
attr: Identifier {
id: Name(""),
range: 9..9,
node_index: AtomicNodeIndex(..),
},
ctx: Del,
},
@ -42,9 +48,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 10..11,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 10..11,
id: Name("z"),
ctx: Load,
@ -54,10 +62,12 @@ Module(
),
Delete(
StmtDelete {
node_index: AtomicNodeIndex(..),
range: 12..24,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 16..17,
id: Name("x"),
ctx: Del,
@ -65,9 +75,11 @@ Module(
),
Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
range: 19..23,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 19..20,
id: Name("y"),
ctx: Load,
@ -75,10 +87,12 @@ Module(
),
slice: Slice(
ExprSlice {
node_index: AtomicNodeIndex(..),
range: 22..23,
lower: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 22..23,
id: Name("z"),
ctx: Load,
@ -88,6 +102,7 @@ Module(
upper: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 23..23,
id: Name(""),
ctx: Invalid,

View file

@ -1,17 +1,18 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/del_stmt_empty.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..4,
body: [
Delete(
StmtDelete {
node_index: AtomicNodeIndex(..),
range: 0..3,
targets: [],
},

View file

@ -1,24 +1,27 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/dotted_name_multiple_dots.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..25,
body: [
Import(
StmtImport {
node_index: AtomicNodeIndex(..),
range: 0..11,
names: [
Alias {
range: 7..11,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a..b"),
range: 7..11,
node_index: AtomicNodeIndex(..),
},
asname: None,
},
@ -27,13 +30,16 @@ Module(
),
Import(
StmtImport {
node_index: AtomicNodeIndex(..),
range: 12..20,
names: [
Alias {
range: 19..20,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 19..20,
node_index: AtomicNodeIndex(..),
},
asname: None,
},
@ -42,9 +48,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 20..23,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 20..23,
},
),
@ -52,9 +60,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 23..24,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 23..24,
id: Name("b"),
ctx: Load,

View file

@ -7,13 +7,16 @@ input_file: crates/ruff_python_parser/resources/inline/err/duplicate_match_class
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..231,
body: [
Match(
StmtMatch {
node_index: AtomicNodeIndex(..),
range: 0..230,
subject: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 6..7,
id: Name("x"),
ctx: Load,
@ -22,11 +25,14 @@ Module(
cases: [
MatchCase {
range: 13..38,
node_index: AtomicNodeIndex(..),
pattern: MatchClass(
PatternMatchClass {
range: 18..33,
node_index: AtomicNodeIndex(..),
cls: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 18..23,
id: Name("Class"),
ctx: Load,
@ -34,19 +40,24 @@ Module(
),
arguments: PatternArguments {
range: 23..33,
node_index: AtomicNodeIndex(..),
patterns: [],
keywords: [
PatternKeyword {
range: 24..27,
node_index: AtomicNodeIndex(..),
attr: Identifier {
id: Name("x"),
range: 24..25,
node_index: AtomicNodeIndex(..),
},
pattern: MatchValue(
PatternMatchValue {
range: 26..27,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 26..27,
value: Int(
1,
@ -58,15 +69,19 @@ Module(
},
PatternKeyword {
range: 29..32,
node_index: AtomicNodeIndex(..),
attr: Identifier {
id: Name("x"),
range: 29..30,
node_index: AtomicNodeIndex(..),
},
pattern: MatchValue(
PatternMatchValue {
range: 31..32,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 31..32,
value: Int(
2,
@ -84,9 +99,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 35..38,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 35..38,
},
),
@ -96,15 +113,19 @@ Module(
},
MatchCase {
range: 43..70,
node_index: AtomicNodeIndex(..),
pattern: MatchSequence(
PatternMatchSequence {
range: 48..65,
node_index: AtomicNodeIndex(..),
patterns: [
MatchClass(
PatternMatchClass {
range: 49..64,
node_index: AtomicNodeIndex(..),
cls: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 49..54,
id: Name("Class"),
ctx: Load,
@ -112,19 +133,24 @@ Module(
),
arguments: PatternArguments {
range: 54..64,
node_index: AtomicNodeIndex(..),
patterns: [],
keywords: [
PatternKeyword {
range: 55..58,
node_index: AtomicNodeIndex(..),
attr: Identifier {
id: Name("x"),
range: 55..56,
node_index: AtomicNodeIndex(..),
},
pattern: MatchValue(
PatternMatchValue {
range: 57..58,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 57..58,
value: Int(
1,
@ -136,15 +162,19 @@ Module(
},
PatternKeyword {
range: 60..63,
node_index: AtomicNodeIndex(..),
attr: Identifier {
id: Name("x"),
range: 60..61,
node_index: AtomicNodeIndex(..),
},
pattern: MatchValue(
PatternMatchValue {
range: 62..63,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 62..63,
value: Int(
2,
@ -165,9 +195,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 67..70,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 67..70,
},
),
@ -177,17 +209,21 @@ Module(
},
MatchCase {
range: 75..113,
node_index: AtomicNodeIndex(..),
pattern: MatchMapping(
PatternMatchMapping {
range: 80..108,
node_index: AtomicNodeIndex(..),
keys: [
StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 81..84,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 81..84,
node_index: AtomicNodeIndex(..),
value: "x",
flags: StringLiteralFlags {
quote_style: Double,
@ -201,11 +237,13 @@ Module(
),
StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 89..92,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 89..92,
node_index: AtomicNodeIndex(..),
value: "y",
flags: StringLiteralFlags {
quote_style: Double,
@ -222,11 +260,13 @@ Module(
MatchAs(
PatternMatchAs {
range: 86..87,
node_index: AtomicNodeIndex(..),
pattern: None,
name: Some(
Identifier {
id: Name("x"),
range: 86..87,
node_index: AtomicNodeIndex(..),
},
),
},
@ -234,8 +274,10 @@ Module(
MatchClass(
PatternMatchClass {
range: 94..107,
node_index: AtomicNodeIndex(..),
cls: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 94..97,
id: Name("Foo"),
ctx: Load,
@ -243,19 +285,24 @@ Module(
),
arguments: PatternArguments {
range: 97..107,
node_index: AtomicNodeIndex(..),
patterns: [],
keywords: [
PatternKeyword {
range: 98..101,
node_index: AtomicNodeIndex(..),
attr: Identifier {
id: Name("x"),
range: 98..99,
node_index: AtomicNodeIndex(..),
},
pattern: MatchValue(
PatternMatchValue {
range: 100..101,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 100..101,
value: Int(
1,
@ -267,15 +314,19 @@ Module(
},
PatternKeyword {
range: 103..106,
node_index: AtomicNodeIndex(..),
attr: Identifier {
id: Name("x"),
range: 103..104,
node_index: AtomicNodeIndex(..),
},
pattern: MatchValue(
PatternMatchValue {
range: 105..106,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 105..106,
value: Int(
2,
@ -297,9 +348,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 110..113,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 110..113,
},
),
@ -309,13 +362,16 @@ Module(
},
MatchCase {
range: 118..162,
node_index: AtomicNodeIndex(..),
pattern: MatchSequence(
PatternMatchSequence {
range: 123..157,
node_index: AtomicNodeIndex(..),
patterns: [
MatchMapping(
PatternMatchMapping {
range: 124..126,
node_index: AtomicNodeIndex(..),
keys: [],
patterns: [],
rest: None,
@ -324,14 +380,17 @@ Module(
MatchMapping(
PatternMatchMapping {
range: 128..156,
node_index: AtomicNodeIndex(..),
keys: [
StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 129..132,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 129..132,
node_index: AtomicNodeIndex(..),
value: "x",
flags: StringLiteralFlags {
quote_style: Double,
@ -345,11 +404,13 @@ Module(
),
StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 137..140,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 137..140,
node_index: AtomicNodeIndex(..),
value: "y",
flags: StringLiteralFlags {
quote_style: Double,
@ -366,11 +427,13 @@ Module(
MatchAs(
PatternMatchAs {
range: 134..135,
node_index: AtomicNodeIndex(..),
pattern: None,
name: Some(
Identifier {
id: Name("x"),
range: 134..135,
node_index: AtomicNodeIndex(..),
},
),
},
@ -378,8 +441,10 @@ Module(
MatchClass(
PatternMatchClass {
range: 142..155,
node_index: AtomicNodeIndex(..),
cls: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 142..145,
id: Name("Foo"),
ctx: Load,
@ -387,19 +452,24 @@ Module(
),
arguments: PatternArguments {
range: 145..155,
node_index: AtomicNodeIndex(..),
patterns: [],
keywords: [
PatternKeyword {
range: 146..149,
node_index: AtomicNodeIndex(..),
attr: Identifier {
id: Name("x"),
range: 146..147,
node_index: AtomicNodeIndex(..),
},
pattern: MatchValue(
PatternMatchValue {
range: 148..149,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 148..149,
value: Int(
1,
@ -411,15 +481,19 @@ Module(
},
PatternKeyword {
range: 151..154,
node_index: AtomicNodeIndex(..),
attr: Identifier {
id: Name("x"),
range: 151..152,
node_index: AtomicNodeIndex(..),
},
pattern: MatchValue(
PatternMatchValue {
range: 153..154,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 153..154,
value: Int(
2,
@ -444,9 +518,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 159..162,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 159..162,
},
),
@ -456,11 +532,14 @@ Module(
},
MatchCase {
range: 167..230,
node_index: AtomicNodeIndex(..),
pattern: MatchClass(
PatternMatchClass {
range: 172..225,
node_index: AtomicNodeIndex(..),
cls: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 172..177,
id: Name("Class"),
ctx: Load,
@ -468,19 +547,24 @@ Module(
),
arguments: PatternArguments {
range: 177..225,
node_index: AtomicNodeIndex(..),
patterns: [],
keywords: [
PatternKeyword {
range: 178..181,
node_index: AtomicNodeIndex(..),
attr: Identifier {
id: Name("x"),
range: 178..179,
node_index: AtomicNodeIndex(..),
},
pattern: MatchValue(
PatternMatchValue {
range: 180..181,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 180..181,
value: Int(
1,
@ -492,21 +576,26 @@ Module(
},
PatternKeyword {
range: 183..201,
node_index: AtomicNodeIndex(..),
attr: Identifier {
id: Name("d"),
range: 183..184,
node_index: AtomicNodeIndex(..),
},
pattern: MatchMapping(
PatternMatchMapping {
range: 185..201,
node_index: AtomicNodeIndex(..),
keys: [
StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 186..189,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 186..189,
node_index: AtomicNodeIndex(..),
value: "x",
flags: StringLiteralFlags {
quote_style: Double,
@ -520,11 +609,13 @@ Module(
),
StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 194..197,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 194..197,
node_index: AtomicNodeIndex(..),
value: "x",
flags: StringLiteralFlags {
quote_style: Double,
@ -541,8 +632,10 @@ Module(
MatchValue(
PatternMatchValue {
range: 191..192,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 191..192,
value: Int(
1,
@ -554,8 +647,10 @@ Module(
MatchValue(
PatternMatchValue {
range: 199..200,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 199..200,
value: Int(
2,
@ -571,15 +666,19 @@ Module(
},
PatternKeyword {
range: 203..224,
node_index: AtomicNodeIndex(..),
attr: Identifier {
id: Name("other"),
range: 203..208,
node_index: AtomicNodeIndex(..),
},
pattern: MatchClass(
PatternMatchClass {
range: 209..224,
node_index: AtomicNodeIndex(..),
cls: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 209..214,
id: Name("Class"),
ctx: Load,
@ -587,19 +686,24 @@ Module(
),
arguments: PatternArguments {
range: 214..224,
node_index: AtomicNodeIndex(..),
patterns: [],
keywords: [
PatternKeyword {
range: 215..218,
node_index: AtomicNodeIndex(..),
attr: Identifier {
id: Name("x"),
range: 215..216,
node_index: AtomicNodeIndex(..),
},
pattern: MatchValue(
PatternMatchValue {
range: 217..218,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 217..218,
value: Int(
1,
@ -611,15 +715,19 @@ Module(
},
PatternKeyword {
range: 220..223,
node_index: AtomicNodeIndex(..),
attr: Identifier {
id: Name("x"),
range: 220..221,
node_index: AtomicNodeIndex(..),
},
pattern: MatchValue(
PatternMatchValue {
range: 222..223,
node_index: AtomicNodeIndex(..),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 222..223,
value: Int(
2,
@ -642,9 +750,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 227..230,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 227..230,
},
),

View file

@ -7,13 +7,16 @@ input_file: crates/ruff_python_parser/resources/inline/err/duplicate_type_parame
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..261,
body: [
TypeAlias(
StmtTypeAlias {
node_index: AtomicNodeIndex(..),
range: 0..22,
name: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 5..10,
id: Name("Alias"),
ctx: Store,
@ -22,13 +25,16 @@ Module(
type_params: Some(
TypeParams {
range: 10..16,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 11..12,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 11..12,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -37,9 +43,11 @@ Module(
TypeVar(
TypeParamTypeVar {
range: 14..15,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 14..15,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -50,6 +58,7 @@ Module(
),
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 19..22,
},
),
@ -57,23 +66,28 @@ Module(
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 23..45,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("f"),
range: 27..28,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 28..34,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 29..30,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 29..30,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -82,9 +96,11 @@ Module(
TypeVar(
TypeParamTypeVar {
range: 32..33,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 32..33,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -95,19 +111,26 @@ Module(
),
parameters: Parameters {
range: 34..40,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 35..39,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 35..39,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("t"),
range: 35..36,
node_index: AtomicNodeIndex(..),
},
annotation: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 38..39,
id: Name("T"),
ctx: Load,
@ -126,9 +149,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 42..45,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 42..45,
},
),
@ -139,22 +164,27 @@ Module(
),
ClassDef(
StmtClassDef {
node_index: AtomicNodeIndex(..),
range: 46..64,
decorator_list: [],
name: Identifier {
id: Name("C"),
range: 52..53,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 53..59,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 54..55,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 54..55,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -163,9 +193,11 @@ Module(
TypeVar(
TypeParamTypeVar {
range: 57..58,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 57..58,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -178,9 +210,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 61..64,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 61..64,
},
),
@ -191,9 +225,11 @@ Module(
),
TypeAlias(
StmtTypeAlias {
node_index: AtomicNodeIndex(..),
range: 65..132,
name: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 70..75,
id: Name("Alias"),
ctx: Store,
@ -202,13 +238,16 @@ Module(
type_params: Some(
TypeParams {
range: 75..126,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 76..77,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 76..77,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -217,13 +256,16 @@ Module(
TypeVar(
TypeParamTypeVar {
range: 79..85,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("U"),
range: 79..80,
node_index: AtomicNodeIndex(..),
},
bound: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 82..85,
id: Name("str"),
ctx: Load,
@ -236,17 +278,21 @@ Module(
TypeVar(
TypeParamTypeVar {
range: 87..102,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("V"),
range: 87..88,
node_index: AtomicNodeIndex(..),
},
bound: Some(
Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 90..102,
elts: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 91..94,
id: Name("str"),
ctx: Load,
@ -254,6 +300,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 96..101,
id: Name("bytes"),
ctx: Load,
@ -271,9 +318,11 @@ Module(
TypeVarTuple(
TypeParamTypeVarTuple {
range: 104..107,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("Ts"),
range: 105..107,
node_index: AtomicNodeIndex(..),
},
default: None,
},
@ -281,9 +330,11 @@ Module(
ParamSpec(
TypeParamParamSpec {
range: 109..112,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("P"),
range: 111..112,
node_index: AtomicNodeIndex(..),
},
default: None,
},
@ -291,14 +342,17 @@ Module(
TypeVar(
TypeParamTypeVar {
range: 114..125,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 114..115,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 118..125,
id: Name("default"),
ctx: Load,
@ -312,6 +366,7 @@ Module(
),
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 129..132,
},
),
@ -319,23 +374,28 @@ Module(
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 133..154,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("f"),
range: 137..138,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 138..147,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 139..140,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 139..140,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -344,9 +404,11 @@ Module(
TypeVar(
TypeParamTypeVar {
range: 142..143,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 142..143,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -355,9 +417,11 @@ Module(
TypeVar(
TypeParamTypeVar {
range: 145..146,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 145..146,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -368,6 +432,9 @@ Module(
),
parameters: Parameters {
range: 147..149,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -378,9 +445,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 151..154,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 151..154,
},
),
@ -391,23 +460,28 @@ Module(
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 169..188,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("f"),
range: 173..174,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 174..181,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 175..176,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 175..176,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -416,9 +490,11 @@ Module(
TypeVarTuple(
TypeParamTypeVarTuple {
range: 178..180,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 179..180,
node_index: AtomicNodeIndex(..),
},
default: None,
},
@ -428,6 +504,9 @@ Module(
),
parameters: Parameters {
range: 181..183,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -438,9 +517,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 185..188,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 185..188,
},
),
@ -451,23 +532,28 @@ Module(
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 218..238,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("f"),
range: 222..223,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 223..231,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 224..225,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 224..225,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
@ -476,9 +562,11 @@ Module(
ParamSpec(
TypeParamParamSpec {
range: 227..230,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 229..230,
node_index: AtomicNodeIndex(..),
},
default: None,
},
@ -488,6 +576,9 @@ Module(
),
parameters: Parameters {
range: 231..233,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -498,9 +589,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 235..238,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 235..238,
},
),

View file

@ -7,17 +7,21 @@ input_file: crates/ruff_python_parser/resources/inline/err/except_star_py310.py
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..126,
body: [
Try(
StmtTry {
node_index: AtomicNodeIndex(..),
range: 44..125,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 49..52,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 49..52,
},
),
@ -28,9 +32,11 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 53..76,
node_index: AtomicNodeIndex(..),
type_: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 61..71,
id: Name("ValueError"),
ctx: Load,
@ -41,9 +47,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 73..76,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 73..76,
},
),
@ -55,9 +63,11 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 77..98,
node_index: AtomicNodeIndex(..),
type_: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 85..93,
id: Name("KeyError"),
ctx: Load,
@ -68,9 +78,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 95..98,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 95..98,
},
),
@ -82,9 +94,11 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 99..125,
node_index: AtomicNodeIndex(..),
type_: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 115..120,
id: Name("Error"),
ctx: Load,
@ -95,9 +109,11 @@ Module(
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 122..125,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 122..125,
},
),

View file

@ -1,21 +1,23 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/except_stmt_invalid_expression.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..74,
body: [
Try(
StmtTry {
node_index: AtomicNodeIndex(..),
range: 0..38,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 9..13,
},
),
@ -24,13 +26,16 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 14..38,
node_index: AtomicNodeIndex(..),
type_: Some(
Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 21..28,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 27..28,
id: Name("x"),
ctx: Load,
@ -44,6 +49,7 @@ Module(
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 34..38,
},
),
@ -58,10 +64,12 @@ Module(
),
Try(
StmtTry {
node_index: AtomicNodeIndex(..),
range: 39..73,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 48..52,
},
),
@ -70,12 +78,15 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 53..73,
node_index: AtomicNodeIndex(..),
type_: Some(
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 61..63,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 62..63,
id: Name("x"),
ctx: Load,
@ -89,6 +100,7 @@ Module(
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 69..73,
},
),

View file

@ -1,21 +1,23 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/except_stmt_missing_as_name.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..73,
body: [
Try(
StmtTry {
node_index: AtomicNodeIndex(..),
range: 0..72,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 9..13,
},
),
@ -24,9 +26,11 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 14..43,
node_index: AtomicNodeIndex(..),
type_: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 21..30,
id: Name("Exception"),
ctx: Load,
@ -37,6 +41,7 @@ Module(
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 39..43,
},
),
@ -46,9 +51,11 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 44..72,
node_index: AtomicNodeIndex(..),
type_: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 51..60,
id: Name("Exception"),
ctx: Load,
@ -59,6 +66,7 @@ Module(
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 68..72,
},
),

View file

@ -1,21 +1,23 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/except_stmt_missing_exception.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..166,
body: [
Try(
StmtTry {
node_index: AtomicNodeIndex(..),
range: 0..37,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 9..13,
},
),
@ -24,16 +26,19 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 14..37,
node_index: AtomicNodeIndex(..),
type_: None,
name: Some(
Identifier {
id: Name("exc"),
range: 24..27,
node_index: AtomicNodeIndex(..),
},
),
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 33..37,
},
),
@ -48,10 +53,12 @@ Module(
),
Try(
StmtTry {
node_index: AtomicNodeIndex(..),
range: 92..165,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 101..105,
},
),
@ -60,11 +67,13 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 106..123,
node_index: AtomicNodeIndex(..),
type_: None,
name: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 119..123,
},
),
@ -74,11 +83,13 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 124..140,
node_index: AtomicNodeIndex(..),
type_: None,
name: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 136..140,
},
),
@ -88,16 +99,19 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 141..165,
node_index: AtomicNodeIndex(..),
type_: None,
name: Some(
Identifier {
id: Name("exc"),
range: 152..155,
node_index: AtomicNodeIndex(..),
},
),
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 161..165,
},
),

View file

@ -1,21 +1,23 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/except_stmt_missing_exception_and_as_name.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..34,
body: [
Try(
StmtTry {
node_index: AtomicNodeIndex(..),
range: 0..33,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 9..13,
},
),
@ -24,11 +26,13 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 14..33,
node_index: AtomicNodeIndex(..),
type_: None,
name: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 29..33,
},
),

View file

@ -7,14 +7,17 @@ input_file: crates/ruff_python_parser/resources/inline/err/except_stmt_unparenth
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..86,
body: [
Try(
StmtTry {
node_index: AtomicNodeIndex(..),
range: 0..42,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 9..13,
},
),
@ -23,13 +26,16 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 14..42,
node_index: AtomicNodeIndex(..),
type_: Some(
Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 21..25,
elts: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 21..22,
id: Name("x"),
ctx: Load,
@ -37,6 +43,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 24..25,
id: Name("y"),
ctx: Load,
@ -52,11 +59,13 @@ Module(
Identifier {
id: Name("exc"),
range: 29..32,
node_index: AtomicNodeIndex(..),
},
),
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 38..42,
},
),
@ -71,10 +80,12 @@ Module(
),
Try(
StmtTry {
node_index: AtomicNodeIndex(..),
range: 43..85,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 52..56,
},
),
@ -83,13 +94,16 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 57..85,
node_index: AtomicNodeIndex(..),
type_: Some(
Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 65..69,
elts: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 65..66,
id: Name("x"),
ctx: Load,
@ -97,6 +111,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 68..69,
id: Name("y"),
ctx: Load,
@ -112,11 +127,13 @@ Module(
Identifier {
id: Name("eg"),
range: 73..75,
node_index: AtomicNodeIndex(..),
},
),
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 81..85,
},
),

View file

@ -7,14 +7,17 @@ input_file: crates/ruff_python_parser/resources/inline/err/except_stmt_unparenth
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..117,
body: [
Try(
StmtTry {
node_index: AtomicNodeIndex(..),
range: 44..79,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 53..57,
},
),
@ -23,13 +26,16 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 58..79,
node_index: AtomicNodeIndex(..),
type_: Some(
Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 65..69,
elts: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 65..66,
id: Name("x"),
ctx: Load,
@ -37,6 +43,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 68..69,
id: Name("y"),
ctx: Load,
@ -52,6 +59,7 @@ Module(
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 75..79,
},
),
@ -66,10 +74,12 @@ Module(
),
Try(
StmtTry {
node_index: AtomicNodeIndex(..),
range: 80..116,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 89..93,
},
),
@ -78,13 +88,16 @@ Module(
ExceptHandler(
ExceptHandlerExceptHandler {
range: 94..116,
node_index: AtomicNodeIndex(..),
type_: Some(
Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 102..106,
elts: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 102..103,
id: Name("x"),
ctx: Load,
@ -92,6 +105,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 105..106,
id: Name("y"),
ctx: Load,
@ -107,6 +121,7 @@ Module(
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 112..116,
},
),

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/arguments/do
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..55,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..15,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..15,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..4,
id: Name("call"),
ctx: Load,
@ -24,17 +28,21 @@ Module(
),
arguments: Arguments {
range: 4..15,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [
Keyword {
range: 5..14,
node_index: AtomicNodeIndex(..),
arg: None,
value: Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 7..14,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 13..14,
id: Name("x"),
ctx: Load,
@ -52,12 +60,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 16..27,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 16..27,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 16..20,
id: Name("call"),
ctx: Load,
@ -65,16 +76,20 @@ Module(
),
arguments: Arguments {
range: 20..27,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [
Keyword {
range: 21..26,
node_index: AtomicNodeIndex(..),
arg: None,
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 24..26,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 25..26,
id: Name("x"),
ctx: Load,
@ -92,12 +107,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 28..38,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 28..38,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 28..32,
id: Name("call"),
ctx: Load,
@ -105,16 +123,20 @@ Module(
),
arguments: Arguments {
range: 32..38,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [
Keyword {
range: 33..37,
node_index: AtomicNodeIndex(..),
arg: None,
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 35..37,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 36..37,
id: Name("x"),
ctx: Load,
@ -132,12 +154,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 40..54,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 40..54,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 40..44,
id: Name("call"),
ctx: Load,
@ -145,9 +170,11 @@ Module(
),
arguments: Arguments {
range: 44..54,
node_index: AtomicNodeIndex(..),
args: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 52..53,
value: Int(
1,
@ -158,9 +185,11 @@ Module(
keywords: [
Keyword {
range: 45..48,
node_index: AtomicNodeIndex(..),
arg: None,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 47..48,
id: Name("x"),
ctx: Load,

View file

@ -1,23 +1,26 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/arguments/duplicate_keyword_arguments.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..28,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..28,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..28,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..3,
id: Name("foo"),
ctx: Load,
@ -25,18 +28,22 @@ Module(
),
arguments: Arguments {
range: 3..28,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [
Keyword {
range: 4..7,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name("a"),
range: 4..5,
node_index: AtomicNodeIndex(..),
},
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 6..7,
value: Int(
1,
@ -46,14 +53,17 @@ Module(
},
Keyword {
range: 9..12,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name("b"),
range: 9..10,
node_index: AtomicNodeIndex(..),
},
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 11..12,
value: Int(
2,
@ -63,14 +73,17 @@ Module(
},
Keyword {
range: 14..17,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name("c"),
range: 14..15,
node_index: AtomicNodeIndex(..),
},
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 16..17,
value: Int(
3,
@ -80,14 +93,17 @@ Module(
},
Keyword {
range: 19..22,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name("b"),
range: 19..20,
node_index: AtomicNodeIndex(..),
},
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 21..22,
value: Int(
4,
@ -97,14 +113,17 @@ Module(
},
Keyword {
range: 24..27,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name("a"),
range: 24..25,
node_index: AtomicNodeIndex(..),
},
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 26..27,
value: Int(
5,

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/arguments/in
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..67,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..15,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..15,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..4,
id: Name("call"),
ctx: Load,
@ -24,18 +28,22 @@ Module(
),
arguments: Arguments {
range: 4..15,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [
Keyword {
range: 5..14,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name(""),
range: 5..10,
node_index: AtomicNodeIndex(..),
},
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 13..14,
value: Int(
1,
@ -51,12 +59,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 16..32,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 16..32,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 16..20,
id: Name("call"),
ctx: Load,
@ -64,18 +75,22 @@ Module(
),
arguments: Arguments {
range: 20..32,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [
Keyword {
range: 21..31,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name(""),
range: 21..27,
node_index: AtomicNodeIndex(..),
},
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 30..31,
value: Int(
1,
@ -91,12 +106,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 34..47,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 34..47,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 34..38,
id: Name("call"),
ctx: Load,
@ -104,13 +122,16 @@ Module(
),
arguments: Arguments {
range: 38..47,
node_index: AtomicNodeIndex(..),
args: [
Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 39..46,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 45..46,
id: Name("x"),
ctx: Load,
@ -128,12 +149,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 48..66,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 48..66,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 48..52,
id: Name("call"),
ctx: Load,
@ -141,12 +165,15 @@ Module(
),
arguments: Arguments {
range: 52..66,
node_index: AtomicNodeIndex(..),
args: [
YieldFrom(
ExprYieldFrom {
node_index: AtomicNodeIndex(..),
range: 53..65,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 64..65,
id: Name("x"),
ctx: Load,

View file

@ -1,23 +1,26 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/arguments/invalid_keyword_expression.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..69,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..17,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..17,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..4,
id: Name("call"),
ctx: Load,
@ -25,22 +28,27 @@ Module(
),
arguments: Arguments {
range: 4..17,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [
Keyword {
range: 5..16,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name("x"),
range: 5..6,
node_index: AtomicNodeIndex(..),
},
),
value: Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 9..16,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 15..16,
id: Name("y"),
ctx: Load,
@ -58,12 +66,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 18..40,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 18..40,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 18..22,
id: Name("call"),
ctx: Load,
@ -71,21 +82,26 @@ Module(
),
arguments: Arguments {
range: 22..40,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [
Keyword {
range: 23..39,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name("x"),
range: 23..24,
node_index: AtomicNodeIndex(..),
},
),
value: YieldFrom(
ExprYieldFrom {
node_index: AtomicNodeIndex(..),
range: 27..39,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 38..39,
id: Name("y"),
ctx: Load,
@ -102,12 +118,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 41..53,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 41..53,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 41..45,
id: Name("call"),
ctx: Load,
@ -115,21 +134,26 @@ Module(
),
arguments: Arguments {
range: 45..53,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [
Keyword {
range: 46..52,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name("x"),
range: 46..47,
node_index: AtomicNodeIndex(..),
},
),
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 50..52,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 51..52,
id: Name("y"),
ctx: Load,
@ -147,12 +171,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 54..68,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 54..68,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 54..58,
id: Name("call"),
ctx: Load,
@ -160,21 +187,26 @@ Module(
),
arguments: Arguments {
range: 58..68,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [
Keyword {
range: 59..67,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name("x"),
range: 59..60,
node_index: AtomicNodeIndex(..),
},
),
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 64..66,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 65..66,
id: Name("y"),
ctx: Load,

View file

@ -1,23 +1,26 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/arguments/invalid_order.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..100,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..17,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..17,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..4,
id: Name("call"),
ctx: Load,
@ -25,9 +28,11 @@ Module(
),
arguments: Arguments {
range: 4..17,
node_index: AtomicNodeIndex(..),
args: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 15..16,
id: Name("x"),
ctx: Load,
@ -37,9 +42,11 @@ Module(
keywords: [
Keyword {
range: 5..13,
node_index: AtomicNodeIndex(..),
arg: None,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 7..13,
id: Name("kwargs"),
ctx: Load,
@ -54,12 +61,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 18..30,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 18..30,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 18..22,
id: Name("call"),
ctx: Load,
@ -67,9 +77,11 @@ Module(
),
arguments: Arguments {
range: 22..30,
node_index: AtomicNodeIndex(..),
args: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 28..29,
id: Name("y"),
ctx: Load,
@ -79,14 +91,17 @@ Module(
keywords: [
Keyword {
range: 23..26,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name("x"),
range: 23..24,
node_index: AtomicNodeIndex(..),
},
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 25..26,
value: Int(
1,
@ -102,12 +117,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 31..53,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 31..53,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 31..35,
id: Name("call"),
ctx: Load,
@ -115,9 +133,11 @@ Module(
),
arguments: Arguments {
range: 35..53,
node_index: AtomicNodeIndex(..),
args: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 51..52,
id: Name("y"),
ctx: Load,
@ -127,14 +147,17 @@ Module(
keywords: [
Keyword {
range: 36..39,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name("x"),
range: 36..37,
node_index: AtomicNodeIndex(..),
},
),
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 38..39,
value: Int(
1,
@ -144,9 +167,11 @@ Module(
},
Keyword {
range: 41..49,
node_index: AtomicNodeIndex(..),
arg: None,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 43..49,
id: Name("kwargs"),
ctx: Load,
@ -161,12 +186,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 54..75,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 54..75,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 54..58,
id: Name("call"),
ctx: Load,
@ -174,12 +202,15 @@ Module(
),
arguments: Arguments {
range: 58..75,
node_index: AtomicNodeIndex(..),
args: [
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 69..74,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 70..74,
id: Name("args"),
ctx: Load,
@ -192,9 +223,11 @@ Module(
keywords: [
Keyword {
range: 59..67,
node_index: AtomicNodeIndex(..),
arg: None,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 61..67,
id: Name("kwargs"),
ctx: Load,
@ -209,12 +242,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 76..99,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 76..99,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 76..80,
id: Name("call"),
ctx: Load,
@ -222,12 +258,15 @@ Module(
),
arguments: Arguments {
range: 80..99,
node_index: AtomicNodeIndex(..),
args: [
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 92..97,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 93..97,
id: Name("args"),
ctx: Load,
@ -240,9 +279,11 @@ Module(
keywords: [
Keyword {
range: 81..89,
node_index: AtomicNodeIndex(..),
arg: None,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 83..89,
id: Name("kwargs"),
ctx: Load,

View file

@ -1,23 +1,26 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/arguments/missing_argument.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..10,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..10,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..10,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..4,
id: Name("call"),
ctx: Load,
@ -25,9 +28,11 @@ Module(
),
arguments: Arguments {
range: 4..10,
node_index: AtomicNodeIndex(..),
args: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 5..6,
id: Name("x"),
ctx: Load,
@ -35,6 +40,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 8..9,
id: Name("y"),
ctx: Load,

View file

@ -1,23 +1,26 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/arguments/missing_comma.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..9,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..9,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..9,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..4,
id: Name("call"),
ctx: Load,
@ -25,9 +28,11 @@ Module(
),
arguments: Arguments {
range: 4..9,
node_index: AtomicNodeIndex(..),
args: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 5..6,
id: Name("x"),
ctx: Load,
@ -35,6 +40,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 7..8,
id: Name("y"),
ctx: Load,

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/arguments/mi
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..38,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..10,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..10,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..4,
id: Name("call"),
ctx: Load,
@ -24,9 +28,11 @@ Module(
),
arguments: Arguments {
range: 4..10,
node_index: AtomicNodeIndex(..),
args: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 8..9,
value: Int(
1,
@ -42,12 +48,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 11..21,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 11..21,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 11..15,
id: Name("call"),
ctx: Load,
@ -55,18 +64,22 @@ Module(
),
arguments: Arguments {
range: 15..21,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [
Keyword {
range: 16..19,
node_index: AtomicNodeIndex(..),
arg: Some(
Identifier {
id: Name("x"),
range: 16..17,
node_index: AtomicNodeIndex(..),
},
),
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 19..19,
id: Name(""),
ctx: Invalid,
@ -81,12 +94,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 22..32,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 22..32,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 22..26,
id: Name("call"),
ctx: Load,
@ -94,12 +110,15 @@ Module(
),
arguments: Arguments {
range: 26..32,
node_index: AtomicNodeIndex(..),
args: [
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 27..28,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 28..28,
id: Name(""),
ctx: Invalid,
@ -110,6 +129,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 30..31,
id: Name("y"),
ctx: Load,
@ -124,9 +144,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 34..37,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 34..37,
id: Name("foo"),
ctx: Load,

View file

@ -1,23 +1,26 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/arguments/starred.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..64,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..28,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..28,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..4,
id: Name("call"),
ctx: Load,
@ -25,15 +28,19 @@ Module(
),
arguments: Arguments {
range: 4..28,
node_index: AtomicNodeIndex(..),
args: [
Generator(
ExprGenerator {
node_index: AtomicNodeIndex(..),
range: 5..27,
elt: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 5..10,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 6..10,
id: Name("data"),
ctx: Load,
@ -45,8 +52,10 @@ Module(
generators: [
Comprehension {
range: 11..27,
node_index: AtomicNodeIndex(..),
target: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 15..19,
id: Name("data"),
ctx: Store,
@ -54,6 +63,7 @@ Module(
),
iter: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 23..27,
id: Name("iter"),
ctx: Load,
@ -75,12 +85,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 29..43,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 29..43,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 29..33,
id: Name("call"),
ctx: Load,
@ -88,16 +101,20 @@ Module(
),
arguments: Arguments {
range: 33..43,
node_index: AtomicNodeIndex(..),
args: [
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 34..42,
value: Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 35..42,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 41..42,
id: Name("x"),
ctx: Load,
@ -118,12 +135,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 44..63,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 44..63,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 44..48,
id: Name("call"),
ctx: Load,
@ -131,15 +151,19 @@ Module(
),
arguments: Arguments {
range: 48..63,
node_index: AtomicNodeIndex(..),
args: [
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 49..62,
value: YieldFrom(
ExprYieldFrom {
node_index: AtomicNodeIndex(..),
range: 50..62,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 61..62,
id: Name("x"),
ctx: Load,

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/arguments/un
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..26,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..5,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..5,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..4,
id: Name("call"),
ctx: Load,
@ -24,6 +28,7 @@ Module(
),
arguments: Arguments {
range: 4..5,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [],
},
@ -33,16 +38,21 @@ Module(
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 7..26,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 11..14,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 14..16,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -53,6 +63,7 @@ Module(
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 22..26,
},
),

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/arguments/un
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..27,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..6,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..6,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..4,
id: Name("call"),
ctx: Load,
@ -24,9 +28,11 @@ Module(
),
arguments: Arguments {
range: 4..6,
node_index: AtomicNodeIndex(..),
args: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 5..6,
id: Name("x"),
ctx: Load,
@ -41,16 +47,21 @@ Module(
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 8..27,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 12..15,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 15..17,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -61,6 +72,7 @@ Module(
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 23..27,
},
),

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/arguments/un
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..28,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..7,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 0..7,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..4,
id: Name("call"),
ctx: Load,
@ -24,9 +28,11 @@ Module(
),
arguments: Arguments {
range: 4..7,
node_index: AtomicNodeIndex(..),
args: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 5..6,
id: Name("x"),
ctx: Load,
@ -41,16 +47,21 @@ Module(
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 9..28,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 13..16,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 16..18,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -61,6 +72,7 @@ Module(
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 24..28,
},
),

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/attribute/invalid_member.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..16,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..1,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Load,
@ -24,9 +26,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 1..3,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 1..3,
value: Float(
0.1,
@ -37,9 +41,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 4..5,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 4..5,
id: Name("x"),
ctx: Load,
@ -49,9 +55,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 5..7,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 5..7,
value: Float(
0.1,
@ -62,9 +70,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 7..9,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 7..9,
value: Float(
0.0,
@ -75,15 +85,19 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 10..15,
value: Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
range: 10..15,
value: Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
range: 10..12,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 10..11,
id: Name("x"),
ctx: Load,
@ -92,12 +106,14 @@ Module(
attr: Identifier {
id: Name(""),
range: 12..12,
node_index: AtomicNodeIndex(..),
},
ctx: Load,
},
),
slice: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 13..14,
value: Int(
0,

View file

@ -1,26 +1,30 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/attribute/multiple_dots.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..46,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..10,
value: Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
range: 0..10,
value: Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
range: 0..6,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..5,
id: Name("extra"),
ctx: Load,
@ -29,6 +33,7 @@ Module(
attr: Identifier {
id: Name(""),
range: 6..6,
node_index: AtomicNodeIndex(..),
},
ctx: Load,
},
@ -36,6 +41,7 @@ Module(
attr: Identifier {
id: Name("dot"),
range: 7..10,
node_index: AtomicNodeIndex(..),
},
ctx: Load,
},
@ -44,9 +50,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 11..19,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 11..19,
id: Name("multiple"),
ctx: Load,
@ -56,18 +64,22 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 19..27,
value: Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
range: 19..27,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 19..22,
},
),
attr: Identifier {
id: Name("dots"),
range: 23..27,
node_index: AtomicNodeIndex(..),
},
ctx: Load,
},
@ -76,9 +88,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 28..36,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 28..36,
id: Name("multiple"),
ctx: Load,
@ -88,21 +102,26 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 36..45,
value: Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
range: 36..45,
value: Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
range: 36..40,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 36..39,
},
),
attr: Identifier {
id: Name(""),
range: 40..40,
node_index: AtomicNodeIndex(..),
},
ctx: Load,
},
@ -110,6 +129,7 @@ Module(
attr: Identifier {
id: Name("dots"),
range: 41..45,
node_index: AtomicNodeIndex(..),
},
ctx: Load,
},

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/attribute/no
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..141,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 87..93,
value: Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
range: 87..93,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 87..92,
id: Name("first"),
ctx: Load,
@ -25,6 +29,7 @@ Module(
attr: Identifier {
id: Name(""),
range: 93..93,
node_index: AtomicNodeIndex(..),
},
ctx: Load,
},
@ -33,9 +38,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 94..100,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 94..100,
id: Name("second"),
ctx: Load,
@ -45,12 +52,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 136..141,
value: Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
range: 136..141,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 136..140,
id: Name("last"),
ctx: Load,
@ -59,6 +69,7 @@ Module(
attr: Identifier {
id: Name(""),
range: 141..141,
node_index: AtomicNodeIndex(..),
},
ctx: Load,
},

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/await/no_exp
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..73,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 61..66,
value: Await(
ExprAwait {
node_index: AtomicNodeIndex(..),
range: 61..66,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 66..66,
id: Name(""),
ctx: Invalid,
@ -28,12 +32,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 68..73,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 68..73,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 68..69,
id: Name("x"),
ctx: Load,
@ -42,6 +49,7 @@ Module(
op: Add,
right: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 72..73,
id: Name("y"),
ctx: Load,

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/await/no_exp
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..85,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 59..64,
value: Await(
ExprAwait {
node_index: AtomicNodeIndex(..),
range: 59..64,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 64..64,
id: Name(""),
ctx: Invalid,
@ -28,16 +32,21 @@ Module(
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 66..85,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 70..73,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 73..75,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
@ -48,6 +57,7 @@ Module(
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 81..85,
},
),

View file

@ -7,19 +7,24 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/await/recove
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..284,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 117..130,
value: Await(
ExprAwait {
node_index: AtomicNodeIndex(..),
range: 117..130,
value: Await(
ExprAwait {
node_index: AtomicNodeIndex(..),
range: 123..130,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 129..130,
id: Name("x"),
ctx: Load,
@ -33,15 +38,19 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 154..162,
value: Await(
ExprAwait {
node_index: AtomicNodeIndex(..),
range: 154..162,
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 160..162,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 161..162,
id: Name("x"),
ctx: Load,
@ -56,15 +65,19 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 163..173,
value: Await(
ExprAwait {
node_index: AtomicNodeIndex(..),
range: 163..173,
value: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 170..172,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 171..172,
id: Name("x"),
ctx: Load,
@ -79,16 +92,20 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 214..227,
value: Await(
ExprAwait {
node_index: AtomicNodeIndex(..),
range: 214..227,
value: Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 220..227,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 226..227,
id: Name("x"),
ctx: Load,
@ -103,25 +120,34 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 228..245,
value: Await(
ExprAwait {
node_index: AtomicNodeIndex(..),
range: 228..245,
value: Lambda(
ExprLambda {
node_index: AtomicNodeIndex(..),
range: 234..245,
parameters: Some(
Parameters {
range: 241..242,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 241..242,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 241..242,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("x"),
range: 241..242,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
@ -135,6 +161,7 @@ Module(
),
body: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 244..245,
id: Name("x"),
ctx: Load,
@ -148,16 +175,20 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 246..254,
value: Await(
ExprAwait {
node_index: AtomicNodeIndex(..),
range: 246..254,
value: UnaryOp(
ExprUnaryOp {
node_index: AtomicNodeIndex(..),
range: 252..254,
op: UAdd,
operand: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 253..254,
id: Name("x"),
ctx: Load,
@ -171,16 +202,20 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 255..263,
value: Await(
ExprAwait {
node_index: AtomicNodeIndex(..),
range: 255..263,
value: UnaryOp(
ExprUnaryOp {
node_index: AtomicNodeIndex(..),
range: 261..263,
op: USub,
operand: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 262..263,
id: Name("x"),
ctx: Load,
@ -194,16 +229,20 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 264..272,
value: Await(
ExprAwait {
node_index: AtomicNodeIndex(..),
range: 264..272,
value: UnaryOp(
ExprUnaryOp {
node_index: AtomicNodeIndex(..),
range: 270..272,
op: Invert,
operand: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 271..272,
id: Name("x"),
ctx: Load,
@ -217,16 +256,20 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 273..284,
value: Await(
ExprAwait {
node_index: AtomicNodeIndex(..),
range: 273..284,
value: UnaryOp(
ExprUnaryOp {
node_index: AtomicNodeIndex(..),
range: 279..284,
op: Not,
operand: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 283..284,
id: Name("x"),
ctx: Load,

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/bin_op/inval
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..28,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..15,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 0..15,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Load,
@ -25,19 +29,26 @@ Module(
op: Add,
right: Lambda(
ExprLambda {
node_index: AtomicNodeIndex(..),
range: 4..15,
parameters: Some(
Parameters {
range: 11..12,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 11..12,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 11..12,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("y"),
range: 11..12,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
@ -51,6 +62,7 @@ Module(
),
body: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 14..15,
id: Name("y"),
ctx: Load,
@ -64,12 +76,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 17..28,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 17..28,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 17..18,
id: Name("x"),
ctx: Load,
@ -78,10 +93,12 @@ Module(
op: Sub,
right: Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 21..28,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 27..28,
id: Name("y"),
ctx: Load,

View file

@ -7,13 +7,16 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/bin_op/missi
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..10,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 2..3,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 2..3,
id: Name("y"),
ctx: Load,
@ -23,12 +26,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 5..10,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 5..10,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 5..6,
value: Int(
1,
@ -38,6 +44,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 9..10,
value: Int(
2,

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/bin_op/missi
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..10,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..3,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 0..3,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 0..1,
value: Int(
0,
@ -26,6 +30,7 @@ Module(
op: Add,
right: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 3..3,
id: Name(""),
ctx: Invalid,
@ -37,12 +42,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 5..10,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 5..10,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 5..6,
value: Int(
1,
@ -52,6 +60,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 9..10,
value: Int(
2,

View file

@ -7,19 +7,24 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/bin_op/missi
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..18,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..11,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 0..11,
left: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 0..5,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 0..1,
value: Int(
1,
@ -29,6 +34,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 4..5,
value: Int(
2,
@ -40,9 +46,11 @@ Module(
op: Sub,
right: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 8..11,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 8..9,
value: Int(
3,
@ -52,6 +60,7 @@ Module(
op: Mult,
right: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 11..11,
id: Name(""),
ctx: Invalid,
@ -65,12 +74,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 13..18,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 13..18,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 13..14,
value: Int(
4,
@ -80,6 +92,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 17..18,
value: Int(
5,

View file

@ -1,23 +1,26 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/bin_op/multiple_ops.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..19,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..3,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 0..3,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Load,
@ -26,10 +29,12 @@ Module(
op: Add,
right: UnaryOp(
ExprUnaryOp {
node_index: AtomicNodeIndex(..),
range: 2..3,
op: UAdd,
operand: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 3..3,
id: Name(""),
ctx: Invalid,
@ -43,12 +48,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 4..9,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 4..9,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 4..5,
value: Int(
1,
@ -58,6 +66,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 8..9,
value: Int(
2,
@ -70,12 +79,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 10..13,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 10..13,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 10..11,
id: Name("x"),
ctx: Load,
@ -84,10 +96,12 @@ Module(
op: Sub,
right: UnaryOp(
ExprUnaryOp {
node_index: AtomicNodeIndex(..),
range: 12..13,
op: USub,
operand: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 13..13,
id: Name(""),
ctx: Invalid,
@ -101,12 +115,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 14..19,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 14..19,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 14..15,
value: Int(
1,
@ -116,6 +133,7 @@ Module(
op: Sub,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 18..19,
value: Int(
2,

View file

@ -1,23 +1,26 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/bin_op/named_expression.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..26,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..5,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 0..5,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Load,
@ -26,6 +29,7 @@ Module(
op: Sub,
right: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 4..5,
id: Name("y"),
ctx: Load,
@ -37,13 +41,16 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 9..15,
value: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 9..15,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 10..11,
value: Int(
1,
@ -52,6 +59,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 13..14,
value: Int(
2,
@ -67,12 +75,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 16..21,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 16..21,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 16..17,
id: Name("x"),
ctx: Load,
@ -81,6 +92,7 @@ Module(
op: Div,
right: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 20..21,
id: Name("y"),
ctx: Load,
@ -92,9 +104,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 25..26,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 25..26,
value: Int(
2,

View file

@ -1,23 +1,26 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/bin_op/starred_expression.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..14,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..6,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 0..6,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Load,
@ -26,9 +29,11 @@ Module(
op: Add,
right: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 4..6,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 5..6,
id: Name("y"),
ctx: Load,
@ -43,12 +48,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 7..14,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 7..14,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 7..8,
id: Name("x"),
ctx: Load,
@ -57,9 +65,11 @@ Module(
op: Pow,
right: Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 12..14,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 13..14,
id: Name("y"),
ctx: Load,

View file

@ -7,18 +7,22 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/bool_op/inva
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..31,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..17,
value: BoolOp(
ExprBoolOp {
node_index: AtomicNodeIndex(..),
range: 0..17,
op: And,
values: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Load,
@ -26,19 +30,26 @@ Module(
),
Lambda(
ExprLambda {
node_index: AtomicNodeIndex(..),
range: 6..17,
parameters: Some(
Parameters {
range: 13..14,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 13..14,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 13..14,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("y"),
range: 13..14,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
@ -52,6 +63,7 @@ Module(
),
body: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 16..17,
id: Name("y"),
ctx: Load,
@ -66,14 +78,17 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 19..31,
value: BoolOp(
ExprBoolOp {
node_index: AtomicNodeIndex(..),
range: 19..31,
op: Or,
values: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 19..20,
id: Name("x"),
ctx: Load,
@ -81,10 +96,12 @@ Module(
),
Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 24..31,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 30..31,
id: Name("y"),
ctx: Load,

View file

@ -1,20 +1,22 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/bool_op/missing_lhs.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..5,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 4..5,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 4..5,
id: Name("y"),
ctx: Load,

View file

@ -7,18 +7,22 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/bool_op/miss
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..12,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..5,
value: BoolOp(
ExprBoolOp {
node_index: AtomicNodeIndex(..),
range: 0..5,
op: And,
values: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Load,
@ -26,6 +30,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 5..5,
id: Name(""),
ctx: Invalid,
@ -38,12 +43,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 7..12,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 7..12,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 7..8,
value: Int(
1,
@ -53,6 +61,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 11..12,
value: Int(
2,

View file

@ -1,25 +1,28 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/bool_op/named_expression.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..24,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..7,
value: BoolOp(
ExprBoolOp {
node_index: AtomicNodeIndex(..),
range: 0..7,
op: And,
values: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Load,
@ -27,6 +30,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 6..7,
id: Name("a"),
ctx: Load,
@ -39,9 +43,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 11..12,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 11..12,
id: Name("b"),
ctx: Load,
@ -51,14 +57,17 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 13..19,
value: BoolOp(
ExprBoolOp {
node_index: AtomicNodeIndex(..),
range: 13..19,
op: Or,
values: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 13..14,
id: Name("x"),
ctx: Load,
@ -66,6 +75,7 @@ Module(
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 18..19,
id: Name("a"),
ctx: Load,
@ -78,9 +88,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 23..24,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 23..24,
id: Name("b"),
ctx: Load,

View file

@ -1,25 +1,28 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/bool_op/starred_expression.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..16,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..8,
value: BoolOp(
ExprBoolOp {
node_index: AtomicNodeIndex(..),
range: 0..8,
op: And,
values: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Load,
@ -27,9 +30,11 @@ Module(
),
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 6..8,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 7..8,
id: Name("y"),
ctx: Load,
@ -45,14 +50,17 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 9..16,
value: BoolOp(
ExprBoolOp {
node_index: AtomicNodeIndex(..),
range: 9..16,
op: Or,
values: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 9..10,
id: Name("x"),
ctx: Load,
@ -60,9 +68,11 @@ Module(
),
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 14..16,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 15..16,
id: Name("y"),
ctx: Load,

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/compare/inva
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..131,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..10,
value: Compare(
ExprCompare {
node_index: AtomicNodeIndex(..),
range: 0..10,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Load,
@ -28,10 +32,12 @@ Module(
comparators: [
UnaryOp(
ExprUnaryOp {
node_index: AtomicNodeIndex(..),
range: 5..10,
op: Not,
operand: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 9..10,
id: Name("y"),
ctx: Load,
@ -46,10 +52,12 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 35..41,
targets: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 35..36,
id: Name("x"),
ctx: Store,
@ -58,9 +66,11 @@ Module(
],
value: Compare(
ExprCompare {
node_index: AtomicNodeIndex(..),
range: 38..41,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 38..38,
id: Name(""),
ctx: Invalid,
@ -72,6 +82,7 @@ Module(
comparators: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 40..41,
id: Name("y"),
ctx: Load,
@ -84,9 +95,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 120..121,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 120..121,
id: Name("x"),
ctx: Load,
@ -96,13 +109,16 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 122..128,
value: UnaryOp(
ExprUnaryOp {
node_index: AtomicNodeIndex(..),
range: 122..128,
op: Not,
operand: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 126..128,
id: Name("is"),
ctx: Load,
@ -114,9 +130,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 129..130,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 129..130,
id: Name("y"),
ctx: Load,

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/compare/inva
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..34,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..20,
value: Compare(
ExprCompare {
node_index: AtomicNodeIndex(..),
range: 0..20,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Load,
@ -28,19 +32,26 @@ Module(
comparators: [
Lambda(
ExprLambda {
node_index: AtomicNodeIndex(..),
range: 9..20,
parameters: Some(
Parameters {
range: 16..17,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 16..17,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 16..17,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("y"),
range: 16..17,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
@ -54,6 +65,7 @@ Module(
),
body: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 19..20,
id: Name("y"),
ctx: Load,
@ -68,12 +80,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 22..34,
value: Compare(
ExprCompare {
node_index: AtomicNodeIndex(..),
range: 22..34,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 22..23,
id: Name("x"),
ctx: Load,
@ -85,10 +100,12 @@ Module(
comparators: [
Yield(
ExprYield {
node_index: AtomicNodeIndex(..),
range: 27..34,
value: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 33..34,
id: Name("y"),
ctx: Load,

View file

@ -7,13 +7,16 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/compare/miss
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..10,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 2..3,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 2..3,
id: Name("y"),
ctx: Load,
@ -23,12 +26,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 5..10,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 5..10,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 5..6,
value: Int(
1,
@ -38,6 +44,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 9..10,
value: Int(
2,

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/compare/miss
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..10,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..3,
value: Compare(
ExprCompare {
node_index: AtomicNodeIndex(..),
range: 0..3,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Load,
@ -28,6 +32,7 @@ Module(
comparators: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 3..3,
id: Name(""),
ctx: Invalid,
@ -40,12 +45,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 5..10,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 5..10,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 5..6,
value: Int(
1,
@ -55,6 +63,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 9..10,
value: Int(
2,

View file

@ -7,13 +7,16 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/compare/miss
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..71,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 59..60,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 59..60,
id: Name("x"),
ctx: Load,
@ -23,13 +26,16 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 61..64,
value: UnaryOp(
ExprUnaryOp {
node_index: AtomicNodeIndex(..),
range: 61..64,
op: Not,
operand: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 64..64,
id: Name(""),
ctx: Invalid,
@ -41,12 +47,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 66..71,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 66..71,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 66..67,
value: Int(
1,
@ -56,6 +65,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 70..71,
value: Int(
2,

View file

@ -7,16 +7,20 @@ input_file: crates/ruff_python_parser/resources/invalid/expressions/compare/miss
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..15,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..8,
value: Compare(
ExprCompare {
node_index: AtomicNodeIndex(..),
range: 0..8,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Load,
@ -28,6 +32,7 @@ Module(
comparators: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 8..8,
id: Name(""),
ctx: Invalid,
@ -40,12 +45,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 10..15,
value: BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 10..15,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 10..11,
value: Int(
1,
@ -55,6 +63,7 @@ Module(
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 14..15,
value: Int(
2,

View file

@ -1,24 +1,27 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/compare/multiple_equals.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..41,
body: [
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 25..32,
targets: [
Compare(
ExprCompare {
node_index: AtomicNodeIndex(..),
range: 25..29,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 25..26,
id: Name("x"),
ctx: Load,
@ -30,6 +33,7 @@ Module(
comparators: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 29..29,
id: Name(""),
ctx: Invalid,
@ -41,6 +45,7 @@ Module(
],
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 31..32,
id: Name("y"),
ctx: Load,
@ -50,13 +55,16 @@ Module(
),
Assign(
StmtAssign {
node_index: AtomicNodeIndex(..),
range: 33..40,
targets: [
Compare(
ExprCompare {
node_index: AtomicNodeIndex(..),
range: 33..37,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 33..34,
id: Name("x"),
ctx: Load,
@ -68,6 +76,7 @@ Module(
comparators: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 37..37,
id: Name(""),
ctx: Invalid,
@ -79,6 +88,7 @@ Module(
],
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 39..40,
id: Name("y"),
ctx: Load,

View file

@ -1,23 +1,26 @@
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/compare/named_expression.py
snapshot_kind: text
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..31,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 0..10,
value: Compare(
ExprCompare {
node_index: AtomicNodeIndex(..),
range: 0..10,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 0..1,
id: Name("x"),
ctx: Load,
@ -29,6 +32,7 @@ Module(
comparators: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 9..10,
id: Name("y"),
ctx: Load,
@ -41,13 +45,16 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 14..20,
value: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 14..20,
elts: [
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 15..16,
value: Int(
1,
@ -56,6 +63,7 @@ Module(
),
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 18..19,
value: Int(
2,
@ -71,12 +79,15 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 21..26,
value: Compare(
ExprCompare {
node_index: AtomicNodeIndex(..),
range: 21..26,
left: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 21..22,
id: Name("x"),
ctx: Load,
@ -88,6 +99,7 @@ Module(
comparators: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 25..26,
id: Name("y"),
ctx: Load,
@ -100,9 +112,11 @@ Module(
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 30..31,
value: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 30..31,
value: Int(
2,

Some files were not shown because too many files have changed in this diff Show more