mirror of
				https://github.com/astral-sh/ruff.git
				synced 2025-10-30 19:47:52 +00:00 
			
		
		
		
	 c9dff5c7d5
			
		
	
	
		c9dff5c7d5
		
			
		
	
	
	
	
		
			
			## 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.
		
			
				
	
	
		
			2022 lines
		
	
	
	
		
			100 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			2022 lines
		
	
	
	
		
			100 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| ---
 | |
| source: crates/ruff_python_parser/tests/fixtures.rs
 | |
| input_file: crates/ruff_python_parser/resources/valid/expressions/arguments.py
 | |
| ---
 | |
| ## AST
 | |
| 
 | |
| ```
 | |
| Module(
 | |
|     ModModule {
 | |
|         node_index: AtomicNodeIndex(..),
 | |
|         range: 0..805,
 | |
|         body: [
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 102..108,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 102..108,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 102..106,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 106..108,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 109..119,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 109..119,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 109..113,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 113..119,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Name(
 | |
|                                         ExprName {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 114..115,
 | |
|                                             id: Name("x"),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                     Name(
 | |
|                                         ExprName {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 117..118,
 | |
|                                             id: Name("y"),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 120..131,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 120..131,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 120..124,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 124..131,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Name(
 | |
|                                         ExprName {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 125..126,
 | |
|                                             id: Name("x"),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                     Name(
 | |
|                                         ExprName {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 128..129,
 | |
|                                             id: Name("y"),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 150..164,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 150..164,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 150..154,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 154..164,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 155..158,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: Some(
 | |
|                                             Identifier {
 | |
|                                                 id: Name("x"),
 | |
|                                                 range: 155..156,
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                         value: NumberLiteral(
 | |
|                                             ExprNumberLiteral {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 157..158,
 | |
|                                                 value: Int(
 | |
|                                                     1,
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                     Keyword {
 | |
|                                         range: 160..163,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: Some(
 | |
|                                             Identifier {
 | |
|                                                 id: Name("y"),
 | |
|                                                 range: 160..161,
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                         value: NumberLiteral(
 | |
|                                             ExprNumberLiteral {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 162..163,
 | |
|                                                 value: Int(
 | |
|                                                     2,
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 165..173,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 165..173,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 165..169,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 169..173,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Starred(
 | |
|                                         ExprStarred {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 170..172,
 | |
|                                             value: Name(
 | |
|                                                 ExprName {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 171..172,
 | |
|                                                     id: Name("x"),
 | |
|                                                     ctx: Load,
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 174..183,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 174..183,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 174..178,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 178..183,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 179..182,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: None,
 | |
|                                         value: Name(
 | |
|                                             ExprName {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 181..182,
 | |
|                                                 id: Name("x"),
 | |
|                                                 ctx: Load,
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 193..205,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 193..205,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 193..197,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 197..205,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Name(
 | |
|                                         ExprName {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 198..199,
 | |
|                                             id: Name("x"),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 201..204,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: Some(
 | |
|                                             Identifier {
 | |
|                                                 id: Name("y"),
 | |
|                                                 range: 201..202,
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                         value: NumberLiteral(
 | |
|                                             ExprNumberLiteral {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 203..204,
 | |
|                                                 value: Int(
 | |
|                                                     1,
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 206..217,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 206..217,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 206..210,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 210..217,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Name(
 | |
|                                         ExprName {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 211..212,
 | |
|                                             id: Name("x"),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                     Starred(
 | |
|                                         ExprStarred {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 214..216,
 | |
|                                             value: Name(
 | |
|                                                 ExprName {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 215..216,
 | |
|                                                     id: Name("y"),
 | |
|                                                     ctx: Load,
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 218..230,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 218..230,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 218..222,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 222..230,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Name(
 | |
|                                         ExprName {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 223..224,
 | |
|                                             id: Name("x"),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 226..229,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: None,
 | |
|                                         value: Name(
 | |
|                                             ExprName {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 228..229,
 | |
|                                                 id: Name("y"),
 | |
|                                                 ctx: Load,
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 231..244,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 231..244,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 231..235,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 235..244,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Starred(
 | |
|                                         ExprStarred {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 241..243,
 | |
|                                             value: Name(
 | |
|                                                 ExprName {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 242..243,
 | |
|                                                     id: Name("y"),
 | |
|                                                     ctx: Load,
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 236..239,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: Some(
 | |
|                                             Identifier {
 | |
|                                                 id: Name("x"),
 | |
|                                                 range: 236..237,
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                         value: NumberLiteral(
 | |
|                                             ExprNumberLiteral {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 238..239,
 | |
|                                                 value: Int(
 | |
|                                                     1,
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 245..259,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 245..259,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 245..249,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 249..259,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 250..253,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: Some(
 | |
|                                             Identifier {
 | |
|                                                 id: Name("x"),
 | |
|                                                 range: 250..251,
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                         value: NumberLiteral(
 | |
|                                             ExprNumberLiteral {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 252..253,
 | |
|                                                 value: Int(
 | |
|                                                     1,
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                     Keyword {
 | |
|                                         range: 255..258,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: None,
 | |
|                                         value: Name(
 | |
|                                             ExprName {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 257..258,
 | |
|                                                 id: Name("y"),
 | |
|                                                 ctx: Load,
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 260..273,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 260..273,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 260..264,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 264..273,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Starred(
 | |
|                                         ExprStarred {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 265..267,
 | |
|                                             value: Name(
 | |
|                                                 ExprName {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 266..267,
 | |
|                                                     id: Name("x"),
 | |
|                                                     ctx: Load,
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 269..272,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: None,
 | |
|                                         value: Name(
 | |
|                                             ExprName {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 271..272,
 | |
|                                                 id: Name("y"),
 | |
|                                                 ctx: Load,
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 274..288,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 274..288,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 274..278,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 278..288,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Starred(
 | |
|                                         ExprStarred {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 279..281,
 | |
|                                             value: Name(
 | |
|                                                 ExprName {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 280..281,
 | |
|                                                     id: Name("x"),
 | |
|                                                     ctx: Load,
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                     Name(
 | |
|                                         ExprName {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 283..284,
 | |
|                                             id: Name("y"),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                     Name(
 | |
|                                         ExprName {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 286..287,
 | |
|                                             id: Name("z"),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 289..308,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 289..308,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 289..293,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 293..308,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 294..297,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: None,
 | |
|                                         value: Name(
 | |
|                                             ExprName {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 296..297,
 | |
|                                                 id: Name("x"),
 | |
|                                                 ctx: Load,
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                     Keyword {
 | |
|                                         range: 299..302,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: Some(
 | |
|                                             Identifier {
 | |
|                                                 id: Name("y"),
 | |
|                                                 range: 299..300,
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                         value: NumberLiteral(
 | |
|                                             ExprNumberLiteral {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 301..302,
 | |
|                                                 value: Int(
 | |
|                                                     1,
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                     Keyword {
 | |
|                                         range: 304..307,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: Some(
 | |
|                                             Identifier {
 | |
|                                                 id: Name("z"),
 | |
|                                                 range: 304..305,
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                         value: NumberLiteral(
 | |
|                                             ExprNumberLiteral {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 306..307,
 | |
|                                                 value: Int(
 | |
|                                                     2,
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 309..335,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 309..335,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 309..313,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 313..335,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Starred(
 | |
|                                         ExprStarred {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 314..317,
 | |
|                                             value: Name(
 | |
|                                                 ExprName {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 315..317,
 | |
|                                                     id: Name("x1"),
 | |
|                                                     ctx: Load,
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                     Starred(
 | |
|                                         ExprStarred {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 319..322,
 | |
|                                             value: Name(
 | |
|                                                 ExprName {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 320..322,
 | |
|                                                     id: Name("x2"),
 | |
|                                                     ctx: Load,
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 324..328,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: None,
 | |
|                                         value: Name(
 | |
|                                             ExprName {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 326..328,
 | |
|                                                 id: Name("y1"),
 | |
|                                                 ctx: Load,
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                     Keyword {
 | |
|                                         range: 330..334,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: None,
 | |
|                                         value: Name(
 | |
|                                             ExprName {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 332..334,
 | |
|                                                 id: Name("y2"),
 | |
|                                                 ctx: Load,
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 336..355,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 336..355,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 336..340,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 340..355,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 341..344,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: Some(
 | |
|                                             Identifier {
 | |
|                                                 id: Name("x"),
 | |
|                                                 range: 341..342,
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                         value: NumberLiteral(
 | |
|                                             ExprNumberLiteral {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 343..344,
 | |
|                                                 value: Int(
 | |
|                                                     1,
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                     Keyword {
 | |
|                                         range: 346..349,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: None,
 | |
|                                         value: Name(
 | |
|                                             ExprName {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 348..349,
 | |
|                                                 id: Name("y"),
 | |
|                                                 ctx: Load,
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                     Keyword {
 | |
|                                         range: 351..354,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: Some(
 | |
|                                             Identifier {
 | |
|                                                 id: Name("z"),
 | |
|                                                 range: 351..352,
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                         value: NumberLiteral(
 | |
|                                             ExprNumberLiteral {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 353..354,
 | |
|                                                 value: Int(
 | |
|                                                     1,
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 378..402,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 378..402,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 378..382,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 382..402,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 383..401,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: Some(
 | |
|                                             Identifier {
 | |
|                                                 id: Name("x"),
 | |
|                                                 range: 383..384,
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                         value: If(
 | |
|                                             ExprIf {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 385..401,
 | |
|                                                 test: BooleanLiteral(
 | |
|                                                     ExprBooleanLiteral {
 | |
|                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                         range: 390..394,
 | |
|                                                         value: true,
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                                 body: NumberLiteral(
 | |
|                                                     ExprNumberLiteral {
 | |
|                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                         range: 385..386,
 | |
|                                                         value: Int(
 | |
|                                                             1,
 | |
|                                                         ),
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                                 orelse: NumberLiteral(
 | |
|                                                     ExprNumberLiteral {
 | |
|                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                         range: 400..401,
 | |
|                                                         value: Int(
 | |
|                                                             2,
 | |
|                                                         ),
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 403..418,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 403..418,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 403..407,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 407..418,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 408..417,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: Some(
 | |
|                                             Identifier {
 | |
|                                                 id: Name("x"),
 | |
|                                                 range: 408..409,
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                         value: Await(
 | |
|                                             ExprAwait {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 410..417,
 | |
|                                                 value: Name(
 | |
|                                                     ExprName {
 | |
|                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                         range: 416..417,
 | |
|                                                         id: Name("y"),
 | |
|                                                         ctx: Load,
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 419..438,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 419..438,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 419..423,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 423..438,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 424..437,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: Some(
 | |
|                                             Identifier {
 | |
|                                                 id: Name("x"),
 | |
|                                                 range: 424..425,
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                         value: Lambda(
 | |
|                                             ExprLambda {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 426..437,
 | |
|                                                 parameters: Some(
 | |
|                                                     Parameters {
 | |
|                                                         range: 433..434,
 | |
|                                                         node_index: AtomicNodeIndex(
 | |
|                                                             0,
 | |
|                                                         ),
 | |
|                                                         posonlyargs: [],
 | |
|                                                         args: [
 | |
|                                                             ParameterWithDefault {
 | |
|                                                                 range: 433..434,
 | |
|                                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                                 parameter: Parameter {
 | |
|                                                                     range: 433..434,
 | |
|                                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                                     name: Identifier {
 | |
|                                                                         id: Name("y"),
 | |
|                                                                         range: 433..434,
 | |
|                                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                                     },
 | |
|                                                                     annotation: None,
 | |
|                                                                 },
 | |
|                                                                 default: None,
 | |
|                                                             },
 | |
|                                                         ],
 | |
|                                                         vararg: None,
 | |
|                                                         kwonlyargs: [],
 | |
|                                                         kwarg: None,
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                                 body: Name(
 | |
|                                                     ExprName {
 | |
|                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                         range: 436..437,
 | |
|                                                         id: Name("y"),
 | |
|                                                         ctx: Load,
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 439..455,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 439..455,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 439..443,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 443..455,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 444..454,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: Some(
 | |
|                                             Identifier {
 | |
|                                                 id: Name("x"),
 | |
|                                                 range: 444..445,
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                         value: Named(
 | |
|                                             ExprNamed {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 447..453,
 | |
|                                                 target: Name(
 | |
|                                                     ExprName {
 | |
|                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                         range: 447..448,
 | |
|                                                         id: Name("y"),
 | |
|                                                         ctx: Store,
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                                 value: NumberLiteral(
 | |
|                                                     ExprNumberLiteral {
 | |
|                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                         range: 452..453,
 | |
|                                                         value: Int(
 | |
|                                                             1,
 | |
|                                                         ),
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 476..491,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 476..491,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 476..480,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 480..491,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Yield(
 | |
|                                         ExprYield {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 482..489,
 | |
|                                             value: Some(
 | |
|                                                 Name(
 | |
|                                                     ExprName {
 | |
|                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                         range: 488..489,
 | |
|                                                         id: Name("x"),
 | |
|                                                         ctx: Load,
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                             ),
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 492..512,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 492..512,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 492..496,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 496..512,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     YieldFrom(
 | |
|                                         ExprYieldFrom {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 498..510,
 | |
|                                             value: Name(
 | |
|                                                 ExprName {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 509..510,
 | |
|                                                     id: Name("x"),
 | |
|                                                     ctx: Load,
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 533..545,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 533..545,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 533..537,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 537..545,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Named(
 | |
|                                         ExprNamed {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 538..544,
 | |
|                                             target: Name(
 | |
|                                                 ExprName {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 538..539,
 | |
|                                                     id: Name("x"),
 | |
|                                                     ctx: Store,
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                             value: NumberLiteral(
 | |
|                                                 ExprNumberLiteral {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 543..544,
 | |
|                                                     value: Int(
 | |
|                                                         1,
 | |
|                                                     ),
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 546..572,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 546..572,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 546..550,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 550..572,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Generator(
 | |
|                                         ExprGenerator {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 551..571,
 | |
|                                             elt: Named(
 | |
|                                                 ExprNamed {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 551..557,
 | |
|                                                     target: Name(
 | |
|                                                         ExprName {
 | |
|                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                             range: 551..552,
 | |
|                                                             id: Name("x"),
 | |
|                                                             ctx: Store,
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                     value: NumberLiteral(
 | |
|                                                         ExprNumberLiteral {
 | |
|                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                             range: 556..557,
 | |
|                                                             value: Int(
 | |
|                                                                 1,
 | |
|                                                             ),
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                             generators: [
 | |
|                                                 Comprehension {
 | |
|                                                     range: 558..571,
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     target: Name(
 | |
|                                                         ExprName {
 | |
|                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                             range: 562..563,
 | |
|                                                             id: Name("i"),
 | |
|                                                             ctx: Store,
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                     iter: Name(
 | |
|                                                         ExprName {
 | |
|                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                             range: 567..571,
 | |
|                                                             id: Name("iter"),
 | |
|                                                             ctx: Load,
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                     ifs: [],
 | |
|                                                     is_async: false,
 | |
|                                                 },
 | |
|                                             ],
 | |
|                                             parenthesized: false,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 596..610,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 596..610,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 596..600,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 600..610,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Starred(
 | |
|                                         ExprStarred {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 601..609,
 | |
|                                             value: BoolOp(
 | |
|                                                 ExprBoolOp {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 602..609,
 | |
|                                                     op: And,
 | |
|                                                     values: [
 | |
|                                                         Name(
 | |
|                                                             ExprName {
 | |
|                                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                                 range: 602..603,
 | |
|                                                                 id: Name("x"),
 | |
|                                                                 ctx: Load,
 | |
|                                                             },
 | |
|                                                         ),
 | |
|                                                         Name(
 | |
|                                                             ExprName {
 | |
|                                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                                 range: 608..609,
 | |
|                                                                 id: Name("y"),
 | |
|                                                                 ctx: Load,
 | |
|                                                             },
 | |
|                                                         ),
 | |
|                                                     ],
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 611..623,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 611..623,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 611..615,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 615..623,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Starred(
 | |
|                                         ExprStarred {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 616..622,
 | |
|                                             value: BinOp(
 | |
|                                                 ExprBinOp {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 617..622,
 | |
|                                                     left: Name(
 | |
|                                                         ExprName {
 | |
|                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                             range: 617..618,
 | |
|                                                             id: Name("x"),
 | |
|                                                             ctx: Load,
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                     op: BitOr,
 | |
|                                                     right: Name(
 | |
|                                                         ExprName {
 | |
|                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                             range: 621..622,
 | |
|                                                             id: Name("y"),
 | |
|                                                             ctx: Load,
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 624..638,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 624..638,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 624..628,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 628..638,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Starred(
 | |
|                                         ExprStarred {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 629..637,
 | |
|                                             value: Await(
 | |
|                                                 ExprAwait {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 630..637,
 | |
|                                                     value: Name(
 | |
|                                                         ExprName {
 | |
|                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                             range: 636..637,
 | |
|                                                             id: Name("x"),
 | |
|                                                             ctx: Load,
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 639..657,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 639..657,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 639..643,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 643..657,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Starred(
 | |
|                                         ExprStarred {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 644..656,
 | |
|                                             value: Lambda(
 | |
|                                                 ExprLambda {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 645..656,
 | |
|                                                     parameters: Some(
 | |
|                                                         Parameters {
 | |
|                                                             range: 652..653,
 | |
|                                                             node_index: AtomicNodeIndex(
 | |
|                                                                 0,
 | |
|                                                             ),
 | |
|                                                             posonlyargs: [],
 | |
|                                                             args: [
 | |
|                                                                 ParameterWithDefault {
 | |
|                                                                     range: 652..653,
 | |
|                                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                                     parameter: Parameter {
 | |
|                                                                         range: 652..653,
 | |
|                                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                                         name: Identifier {
 | |
|                                                                             id: Name("x"),
 | |
|                                                                             range: 652..653,
 | |
|                                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                                         },
 | |
|                                                                         annotation: None,
 | |
|                                                                     },
 | |
|                                                                     default: None,
 | |
|                                                                 },
 | |
|                                                             ],
 | |
|                                                             vararg: None,
 | |
|                                                             kwonlyargs: [],
 | |
|                                                             kwarg: None,
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                     body: Name(
 | |
|                                                         ExprName {
 | |
|                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                             range: 655..656,
 | |
|                                                             id: Name("x"),
 | |
|                                                             ctx: Load,
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 658..681,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 658..681,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 658..662,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 662..681,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [
 | |
|                                     Starred(
 | |
|                                         ExprStarred {
 | |
|                                             node_index: AtomicNodeIndex(..),
 | |
|                                             range: 663..680,
 | |
|                                             value: If(
 | |
|                                                 ExprIf {
 | |
|                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                     range: 664..680,
 | |
|                                                     test: BooleanLiteral(
 | |
|                                                         ExprBooleanLiteral {
 | |
|                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                             range: 669..673,
 | |
|                                                             value: true,
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                     body: Name(
 | |
|                                                         ExprName {
 | |
|                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                             range: 664..665,
 | |
|                                                             id: Name("x"),
 | |
|                                                             ctx: Load,
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                     orelse: Name(
 | |
|                                                         ExprName {
 | |
|                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                             range: 679..680,
 | |
|                                                             id: Name("y"),
 | |
|                                                             ctx: Load,
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                 },
 | |
|                                             ),
 | |
|                                             ctx: Load,
 | |
|                                         },
 | |
|                                     ),
 | |
|                                 ],
 | |
|                                 keywords: [],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 700..709,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 700..709,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 700..704,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 704..709,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 705..708,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: None,
 | |
|                                         value: Name(
 | |
|                                             ExprName {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 707..708,
 | |
|                                                 id: Name("x"),
 | |
|                                                 ctx: Load,
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 710..725,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 710..725,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 710..714,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 714..725,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 715..724,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: None,
 | |
|                                         value: BoolOp(
 | |
|                                             ExprBoolOp {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 717..724,
 | |
|                                                 op: And,
 | |
|                                                 values: [
 | |
|                                                     Name(
 | |
|                                                         ExprName {
 | |
|                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                             range: 717..718,
 | |
|                                                             id: Name("x"),
 | |
|                                                             ctx: Load,
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                     Name(
 | |
|                                                         ExprName {
 | |
|                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                             range: 723..724,
 | |
|                                                             id: Name("y"),
 | |
|                                                             ctx: Load,
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                 ],
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 726..741,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 726..741,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 726..730,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 730..741,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 731..740,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: None,
 | |
|                                         value: Await(
 | |
|                                             ExprAwait {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 733..740,
 | |
|                                                 value: Name(
 | |
|                                                     ExprName {
 | |
|                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                         range: 739..740,
 | |
|                                                         id: Name("x"),
 | |
|                                                         ctx: Load,
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 742..766,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 742..766,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 742..746,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 746..766,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 747..765,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: None,
 | |
|                                         value: If(
 | |
|                                             ExprIf {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 749..765,
 | |
|                                                 test: BooleanLiteral(
 | |
|                                                     ExprBooleanLiteral {
 | |
|                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                         range: 754..758,
 | |
|                                                         value: true,
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                                 body: Name(
 | |
|                                                     ExprName {
 | |
|                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                         range: 749..750,
 | |
|                                                         id: Name("x"),
 | |
|                                                         ctx: Load,
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                                 orelse: Name(
 | |
|                                                     ExprName {
 | |
|                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                         range: 764..765,
 | |
|                                                         id: Name("y"),
 | |
|                                                         ctx: Load,
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 767..784,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 767..784,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 767..771,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 771..784,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 772..783,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: None,
 | |
|                                         value: Yield(
 | |
|                                             ExprYield {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 775..782,
 | |
|                                                 value: Some(
 | |
|                                                     Name(
 | |
|                                                         ExprName {
 | |
|                                                             node_index: AtomicNodeIndex(..),
 | |
|                                                             range: 781..782,
 | |
|                                                             id: Name("x"),
 | |
|                                                             ctx: Load,
 | |
|                                                         },
 | |
|                                                     ),
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|             Expr(
 | |
|                 StmtExpr {
 | |
|                     node_index: AtomicNodeIndex(..),
 | |
|                     range: 785..804,
 | |
|                     value: Call(
 | |
|                         ExprCall {
 | |
|                             node_index: AtomicNodeIndex(..),
 | |
|                             range: 785..804,
 | |
|                             func: Name(
 | |
|                                 ExprName {
 | |
|                                     node_index: AtomicNodeIndex(..),
 | |
|                                     range: 785..789,
 | |
|                                     id: Name("call"),
 | |
|                                     ctx: Load,
 | |
|                                 },
 | |
|                             ),
 | |
|                             arguments: Arguments {
 | |
|                                 range: 789..804,
 | |
|                                 node_index: AtomicNodeIndex(..),
 | |
|                                 args: [],
 | |
|                                 keywords: [
 | |
|                                     Keyword {
 | |
|                                         range: 790..803,
 | |
|                                         node_index: AtomicNodeIndex(..),
 | |
|                                         arg: None,
 | |
|                                         value: Lambda(
 | |
|                                             ExprLambda {
 | |
|                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                 range: 792..803,
 | |
|                                                 parameters: Some(
 | |
|                                                     Parameters {
 | |
|                                                         range: 799..800,
 | |
|                                                         node_index: AtomicNodeIndex(
 | |
|                                                             0,
 | |
|                                                         ),
 | |
|                                                         posonlyargs: [],
 | |
|                                                         args: [
 | |
|                                                             ParameterWithDefault {
 | |
|                                                                 range: 799..800,
 | |
|                                                                 node_index: AtomicNodeIndex(..),
 | |
|                                                                 parameter: Parameter {
 | |
|                                                                     range: 799..800,
 | |
|                                                                     node_index: AtomicNodeIndex(..),
 | |
|                                                                     name: Identifier {
 | |
|                                                                         id: Name("x"),
 | |
|                                                                         range: 799..800,
 | |
|                                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                                     },
 | |
|                                                                     annotation: None,
 | |
|                                                                 },
 | |
|                                                                 default: None,
 | |
|                                                             },
 | |
|                                                         ],
 | |
|                                                         vararg: None,
 | |
|                                                         kwonlyargs: [],
 | |
|                                                         kwarg: None,
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                                 body: Name(
 | |
|                                                     ExprName {
 | |
|                                                         node_index: AtomicNodeIndex(..),
 | |
|                                                         range: 802..803,
 | |
|                                                         id: Name("x"),
 | |
|                                                         ctx: Load,
 | |
|                                                     },
 | |
|                                                 ),
 | |
|                                             },
 | |
|                                         ),
 | |
|                                     },
 | |
|                                 ],
 | |
|                             },
 | |
|                         },
 | |
|                     ),
 | |
|                 },
 | |
|             ),
 | |
|         ],
 | |
|     },
 | |
| )
 | |
| ```
 |