ruff/crates/ruff_python_parser/tests/snapshots/valid_syntax@statement__function.py.snap
Ibraheem Ahmed c9dff5c7d5
[ty] AST garbage collection (#18482)
## Summary

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

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

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

Part of https://github.com/astral-sh/ty/issues/214.
2025-06-13 08:40:11 -04:00

3914 lines
180 KiB
Text

---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/valid/statement/function.py
---
## AST
```
Module(
ModModule {
node_index: AtomicNodeIndex(..),
range: 0..2399,
body: [
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 0..29,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("no_parameters"),
range: 4..17,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 17..19,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 25..29,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 32..76,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("positional_parameters"),
range: 36..57,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 57..66,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 58..59,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 58..59,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 58..59,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 61..62,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 61..62,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 61..62,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 64..65,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 64..65,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 64..65,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 72..76,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 79..149,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("positional_parameters_with_default_values"),
range: 83..124,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 124..139,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 125..126,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 125..126,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 125..126,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 128..132,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 128..129,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 128..129,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 130..132,
value: Int(
20,
),
},
),
),
},
ParameterWithDefault {
range: 134..138,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 134..135,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 134..135,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 136..138,
value: Int(
30,
),
},
),
),
},
],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 145..149,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 152..226,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("positional_parameters_with_default_values2"),
range: 156..198,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 198..216,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [
ParameterWithDefault {
range: 199..200,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 199..200,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 199..200,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 202..206,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 202..203,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 202..203,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 204..206,
value: Int(
20,
),
},
),
),
},
],
args: [
ParameterWithDefault {
range: 211..215,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 211..212,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 211..212,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 213..215,
value: Int(
30,
),
},
),
),
},
],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 222..226,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 229..296,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("positional_only_and_positional_parameters"),
range: 233..274,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 274..286,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [
ParameterWithDefault {
range: 275..276,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 275..276,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 275..276,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
args: [
ParameterWithDefault {
range: 281..282,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 281..282,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 281..282,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 284..285,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 284..285,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 284..285,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 292..296,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 299..393,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("pos_args_with_defaults_and_varargs_and_kwargs"),
range: 303..348,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 348..383,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [
ParameterWithDefault {
range: 349..350,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 349..350,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 349..350,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 352..356,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 352..353,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 352..353,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 354..356,
value: Int(
20,
),
},
),
),
},
],
args: [
ParameterWithDefault {
range: 361..365,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 361..362,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 361..362,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 363..365,
value: Int(
30,
),
},
),
),
},
],
vararg: Some(
Parameter {
range: 367..372,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("args"),
range: 368..372,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
kwonlyargs: [],
kwarg: Some(
Parameter {
range: 374..382,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("kwargs"),
range: 376..382,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 389..393,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 396..445,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("keyword_only_parameters"),
range: 400..423,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 423..435,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
kwonlyargs: [
ParameterWithDefault {
range: 427..428,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 427..428,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 427..428,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 430..431,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 430..431,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 430..431,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 433..434,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 433..434,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 433..434,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 441..445,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 448..517,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("keyword_only_parameters_with_defaults"),
range: 452..489,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 489..507,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
kwonlyargs: [
ParameterWithDefault {
range: 493..494,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 493..494,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 493..494,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 496..500,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 496..497,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 496..497,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 498..500,
value: Int(
20,
),
},
),
),
},
ParameterWithDefault {
range: 502..506,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 502..503,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 502..503,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 504..506,
value: Int(
30,
),
},
),
),
},
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 513..517,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 520..594,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("kw_only_args_with_defaults_and_varargs"),
range: 524..562,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 562..584,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: Some(
Parameter {
range: 563..568,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("args"),
range: 564..568,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
kwonlyargs: [
ParameterWithDefault {
range: 570..571,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 570..571,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 570..571,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 573..577,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 573..574,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 573..574,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 575..577,
value: Int(
20,
),
},
),
),
},
ParameterWithDefault {
range: 579..583,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 579..580,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 579..580,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 581..583,
value: Int(
30,
),
},
),
),
},
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 590..594,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 597..676,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("kw_only_args_with_defaults_and_kwargs"),
range: 601..638,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 638..666,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
kwonlyargs: [
ParameterWithDefault {
range: 642..643,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 642..643,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 642..643,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 645..649,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 645..646,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 645..646,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 647..649,
value: Int(
20,
),
},
),
),
},
ParameterWithDefault {
range: 651..655,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 651..652,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 651..652,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 653..655,
value: Int(
30,
),
},
),
),
},
],
kwarg: Some(
Parameter {
range: 657..665,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("kwargs"),
range: 659..665,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 672..676,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 679..774,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("kw_only_args_with_defaults_and_varargs_and_kwargs"),
range: 683..732,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 732..764,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: Some(
Parameter {
range: 733..738,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("args"),
range: 734..738,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
kwonlyargs: [
ParameterWithDefault {
range: 740..741,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 740..741,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 740..741,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 743..747,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 743..744,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 743..744,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 745..747,
value: Int(
20,
),
},
),
),
},
ParameterWithDefault {
range: 749..753,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 749..750,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 749..750,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 751..753,
value: Int(
30,
),
},
),
),
},
],
kwarg: Some(
Parameter {
range: 755..763,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("kwargs"),
range: 757..763,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 770..774,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 777..835,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("pos_and_kw_only_args"),
range: 781..801,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 801..825,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [
ParameterWithDefault {
range: 802..803,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 802..803,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 802..803,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 805..806,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 805..806,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 805..806,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
args: [
ParameterWithDefault {
range: 811..812,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 811..812,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 811..812,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
vararg: None,
kwonlyargs: [
ParameterWithDefault {
range: 817..818,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 817..818,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("d"),
range: 817..818,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 820..821,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 820..821,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("e"),
range: 820..821,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 823..824,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 823..824,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("f"),
range: 823..824,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 831..835,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 838..916,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("pos_and_kw_only_args_with_defaults"),
range: 842..876,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 876..906,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [
ParameterWithDefault {
range: 877..878,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 877..878,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 877..878,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 880..881,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 880..881,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 880..881,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
args: [
ParameterWithDefault {
range: 886..887,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 886..887,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 886..887,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
vararg: None,
kwonlyargs: [
ParameterWithDefault {
range: 892..893,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 892..893,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("d"),
range: 892..893,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 895..899,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 895..896,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("e"),
range: 895..896,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 897..899,
value: Int(
20,
),
},
),
),
},
ParameterWithDefault {
range: 901..905,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 901..902,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("f"),
range: 901..902,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 903..905,
value: Int(
30,
),
},
),
),
},
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 912..916,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 919..1013,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("pos_and_kw_only_args_with_defaults_and_varargs"),
range: 923..969,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 969..1003,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [
ParameterWithDefault {
range: 970..971,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 970..971,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 970..971,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 973..974,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 973..974,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 973..974,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
args: [
ParameterWithDefault {
range: 979..980,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 979..980,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 979..980,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
vararg: Some(
Parameter {
range: 982..987,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("args"),
range: 983..987,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
kwonlyargs: [
ParameterWithDefault {
range: 989..990,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 989..990,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("d"),
range: 989..990,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 992..996,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 992..993,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("e"),
range: 992..993,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 994..996,
value: Int(
20,
),
},
),
),
},
ParameterWithDefault {
range: 998..1002,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 998..999,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("f"),
range: 998..999,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 1000..1002,
value: Int(
30,
),
},
),
),
},
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 1009..1013,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 1016..1121,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("pos_and_kw_only_args_with_defaults_and_kwargs"),
range: 1020..1065,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 1065..1111,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [
ParameterWithDefault {
range: 1071..1072,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1071..1072,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 1071..1072,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1074..1075,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1074..1075,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 1074..1075,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
args: [
ParameterWithDefault {
range: 1080..1081,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1080..1081,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 1080..1081,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
vararg: None,
kwonlyargs: [
ParameterWithDefault {
range: 1086..1087,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1086..1087,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("d"),
range: 1086..1087,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1089..1093,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1089..1090,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("e"),
range: 1089..1090,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 1091..1093,
value: Int(
20,
),
},
),
),
},
ParameterWithDefault {
range: 1095..1099,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1095..1096,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("f"),
range: 1095..1096,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 1097..1099,
value: Int(
30,
),
},
),
),
},
],
kwarg: Some(
Parameter {
range: 1101..1109,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("kwargs"),
range: 1103..1109,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 1117..1121,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 1124..1245,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("pos_and_kw_only_args_with_defaults_and_varargs_and_kwargs"),
range: 1128..1185,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 1185..1235,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [
ParameterWithDefault {
range: 1191..1192,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1191..1192,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 1191..1192,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1194..1195,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1194..1195,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 1194..1195,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
args: [
ParameterWithDefault {
range: 1200..1201,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1200..1201,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 1200..1201,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
vararg: Some(
Parameter {
range: 1203..1208,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("args"),
range: 1204..1208,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
kwonlyargs: [
ParameterWithDefault {
range: 1210..1211,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1210..1211,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("d"),
range: 1210..1211,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1213..1217,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1213..1214,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("e"),
range: 1213..1214,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 1215..1217,
value: Int(
20,
),
},
),
),
},
ParameterWithDefault {
range: 1219..1223,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1219..1220,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("f"),
range: 1219..1220,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 1221..1223,
value: Int(
30,
),
},
),
),
},
],
kwarg: Some(
Parameter {
range: 1225..1233,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("kwargs"),
range: 1227..1233,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 1241..1245,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 1248..1316,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("positional_and_keyword_parameters"),
range: 1252..1285,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 1285..1306,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 1286..1287,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1286..1287,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 1286..1287,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1289..1290,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1289..1290,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 1289..1290,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1292..1293,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1292..1293,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 1292..1293,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
vararg: None,
kwonlyargs: [
ParameterWithDefault {
range: 1298..1299,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1298..1299,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("d"),
range: 1298..1299,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1301..1302,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1301..1302,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("e"),
range: 1301..1302,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1304..1305,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1304..1305,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("f"),
range: 1304..1305,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 1312..1316,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 1319..1407,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("positional_and_keyword_parameters_with_defaults"),
range: 1323..1370,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 1370..1397,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 1371..1372,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1371..1372,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 1371..1372,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1374..1375,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1374..1375,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 1374..1375,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1377..1378,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1377..1378,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 1377..1378,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
vararg: None,
kwonlyargs: [
ParameterWithDefault {
range: 1383..1384,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1383..1384,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("d"),
range: 1383..1384,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1386..1390,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1386..1387,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("e"),
range: 1386..1387,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 1388..1390,
value: Int(
20,
),
},
),
),
},
ParameterWithDefault {
range: 1392..1396,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1392..1393,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("f"),
range: 1392..1393,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 1394..1396,
value: Int(
30,
),
},
),
),
},
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 1403..1407,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 1410..1520,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("positional_and_keyword_parameters_with_defaults_and_varargs"),
range: 1414..1473,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 1473..1510,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 1479..1480,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1479..1480,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 1479..1480,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1482..1483,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1482..1483,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 1482..1483,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1485..1486,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1485..1486,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 1485..1486,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
vararg: Some(
Parameter {
range: 1488..1493,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("args"),
range: 1489..1493,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
kwonlyargs: [
ParameterWithDefault {
range: 1495..1496,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1495..1496,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("d"),
range: 1495..1496,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1498..1502,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1498..1499,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("e"),
range: 1498..1499,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 1500..1502,
value: Int(
20,
),
},
),
),
},
ParameterWithDefault {
range: 1504..1508,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1504..1505,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("f"),
range: 1504..1505,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 1506..1508,
value: Int(
30,
),
},
),
),
},
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 1516..1520,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 1523..1654,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("positional_and_keyword_parameters_with_defaults_and_varargs_and_kwargs"),
range: 1527..1597,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 1597..1644,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 1603..1604,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1603..1604,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 1603..1604,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1606..1607,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1606..1607,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 1606..1607,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1609..1610,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1609..1610,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 1609..1610,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
vararg: Some(
Parameter {
range: 1612..1617,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("args"),
range: 1613..1617,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
kwonlyargs: [
ParameterWithDefault {
range: 1619..1620,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1619..1620,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("d"),
range: 1619..1620,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 1622..1626,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1622..1623,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("e"),
range: 1622..1623,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 1624..1626,
value: Int(
20,
),
},
),
),
},
ParameterWithDefault {
range: 1628..1632,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1628..1629,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("f"),
range: 1628..1629,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 1630..1632,
value: Int(
30,
),
},
),
),
},
],
kwarg: Some(
Parameter {
range: 1634..1642,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("kwargs"),
range: 1636..1642,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 1650..1654,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 1703..1735,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("func"),
range: 1707..1711,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 1711..1714,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 1712..1713,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 1712..1713,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
},
),
],
},
),
parameters: Parameters {
range: 1714..1720,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 1715..1719,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1715..1719,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 1715..1716,
node_index: AtomicNodeIndex(..),
},
annotation: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1718..1719,
id: Name("T"),
ctx: Load,
},
),
),
},
default: None,
},
],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1724..1725,
id: Name("T"),
ctx: Load,
},
),
),
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 1731..1735,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 1738..1775,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("func"),
range: 1742..1746,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 1746..1754,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 1747..1753,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 1747..1748,
node_index: AtomicNodeIndex(..),
},
bound: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1750..1753,
id: Name("str"),
ctx: Load,
},
),
),
default: None,
},
),
],
},
),
parameters: Parameters {
range: 1754..1760,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 1755..1759,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1755..1759,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 1755..1756,
node_index: AtomicNodeIndex(..),
},
annotation: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1758..1759,
id: Name("T"),
ctx: Load,
},
),
),
},
default: None,
},
],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1764..1765,
id: Name("T"),
ctx: Load,
},
),
),
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 1771..1775,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 1778..1824,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("func"),
range: 1782..1786,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 1786..1803,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 1787..1802,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 1787..1788,
node_index: AtomicNodeIndex(..),
},
bound: Some(
Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 1790..1802,
elts: [
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1791..1794,
id: Name("str"),
ctx: Load,
},
),
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1796..1801,
id: Name("bytes"),
ctx: Load,
},
),
],
ctx: Load,
parenthesized: true,
},
),
),
default: None,
},
),
],
},
),
parameters: Parameters {
range: 1803..1809,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 1804..1808,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 1804..1808,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 1804..1805,
node_index: AtomicNodeIndex(..),
},
annotation: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1807..1808,
id: Name("T"),
ctx: Load,
},
),
),
},
default: None,
},
],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1813..1814,
id: Name("T"),
ctx: Load,
},
),
),
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 1820..1824,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 1827..1873,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("func"),
range: 1831..1835,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 1835..1840,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVarTuple(
TypeParamTypeVarTuple {
range: 1836..1839,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("Ts"),
range: 1837..1839,
node_index: AtomicNodeIndex(..),
},
default: None,
},
),
],
},
),
parameters: Parameters {
range: 1840..1849,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: Some(
Parameter {
range: 1841..1848,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 1842..1843,
node_index: AtomicNodeIndex(..),
},
annotation: Some(
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 1845..1848,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1846..1848,
id: Name("Ts"),
ctx: Load,
},
),
ctx: Load,
},
),
),
},
),
kwonlyargs: [],
kwarg: None,
},
returns: Some(
Subscript(
ExprSubscript {
node_index: AtomicNodeIndex(..),
range: 1853..1863,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1853..1858,
id: Name("Tuple"),
ctx: Load,
},
),
slice: Tuple(
ExprTuple {
node_index: AtomicNodeIndex(..),
range: 1859..1862,
elts: [
Starred(
ExprStarred {
node_index: AtomicNodeIndex(..),
range: 1859..1862,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1860..1862,
id: Name("Ts"),
ctx: Load,
},
),
ctx: Load,
},
),
],
ctx: Load,
parenthesized: false,
},
),
ctx: Load,
},
),
),
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 1869..1873,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 1876..1934,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("func"),
range: 1880..1884,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 1884..1889,
node_index: AtomicNodeIndex(..),
type_params: [
ParamSpec(
TypeParamParamSpec {
range: 1885..1888,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("P"),
range: 1887..1888,
node_index: AtomicNodeIndex(..),
},
default: None,
},
),
],
},
),
parameters: Parameters {
range: 1889..1924,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: Some(
Parameter {
range: 1890..1903,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("args"),
range: 1891..1895,
node_index: AtomicNodeIndex(..),
},
annotation: Some(
Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
range: 1897..1903,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1897..1898,
id: Name("P"),
ctx: Load,
},
),
attr: Identifier {
id: Name("args"),
range: 1899..1903,
node_index: AtomicNodeIndex(..),
},
ctx: Load,
},
),
),
},
),
kwonlyargs: [],
kwarg: Some(
Parameter {
range: 1905..1923,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("kwargs"),
range: 1907..1913,
node_index: AtomicNodeIndex(..),
},
annotation: Some(
Attribute(
ExprAttribute {
node_index: AtomicNodeIndex(..),
range: 1915..1923,
value: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1915..1916,
id: Name("P"),
ctx: Load,
},
),
attr: Identifier {
id: Name("kwargs"),
range: 1917..1923,
node_index: AtomicNodeIndex(..),
},
ctx: Load,
},
),
),
},
),
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 1930..1934,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 1937..1978,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("func"),
range: 1941..1945,
node_index: AtomicNodeIndex(..),
},
type_params: Some(
TypeParams {
range: 1945..1966,
node_index: AtomicNodeIndex(..),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 1946..1947,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("T"),
range: 1946..1947,
node_index: AtomicNodeIndex(..),
},
bound: None,
default: None,
},
),
TypeVar(
TypeParamTypeVar {
range: 1949..1955,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("U"),
range: 1949..1950,
node_index: AtomicNodeIndex(..),
},
bound: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 1952..1955,
id: Name("str"),
ctx: Load,
},
),
),
default: None,
},
),
TypeVarTuple(
TypeParamTypeVarTuple {
range: 1957..1960,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("Ts"),
range: 1958..1960,
node_index: AtomicNodeIndex(..),
},
default: None,
},
),
ParamSpec(
TypeParamParamSpec {
range: 1962..1965,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("P"),
range: 1964..1965,
node_index: AtomicNodeIndex(..),
},
default: None,
},
),
],
},
),
parameters: Parameters {
range: 1966..1968,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 1974..1978,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 1981..2000,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("ellipsis"),
range: 1985..1993,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 1993..1995,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 1997..2000,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 1997..2000,
},
),
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 2003..2064,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("multiple_statements"),
range: 2007..2026,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 2026..2028,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 2032..2035,
id: Name("int"),
ctx: Load,
},
),
),
body: [
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 2041..2047,
value: Call(
ExprCall {
node_index: AtomicNodeIndex(..),
range: 2041..2047,
func: Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 2041..2045,
id: Name("call"),
ctx: Load,
},
),
arguments: Arguments {
range: 2045..2047,
node_index: AtomicNodeIndex(..),
args: [],
keywords: [],
},
},
),
},
),
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 2052..2056,
},
),
Expr(
StmtExpr {
node_index: AtomicNodeIndex(..),
range: 2061..2064,
value: EllipsisLiteral(
ExprEllipsisLiteral {
node_index: AtomicNodeIndex(..),
range: 2061..2064,
},
),
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 2067..2091,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 2071..2074,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 2074..2081,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: Some(
Parameter {
range: 2075..2080,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("args"),
range: 2076..2080,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 2087..2091,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 2094..2121,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 2098..2101,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 2101..2111,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: None,
kwonlyargs: [],
kwarg: Some(
Parameter {
range: 2102..2110,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("kwargs"),
range: 2104..2110,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 2117..2121,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 2124..2158,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 2128..2131,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 2131..2148,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [],
vararg: Some(
Parameter {
range: 2132..2137,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("args"),
range: 2133..2137,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
kwonlyargs: [],
kwarg: Some(
Parameter {
range: 2139..2147,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("kwargs"),
range: 2141..2147,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
),
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 2154..2158,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 2161..2184,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 2165..2168,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 2168..2174,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [
ParameterWithDefault {
range: 2169..2170,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2169..2170,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 2169..2170,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
args: [],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 2180..2184,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 2187..2213,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 2191..2194,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 2194..2203,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [
ParameterWithDefault {
range: 2195..2196,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2195..2196,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 2195..2196,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
args: [
ParameterWithDefault {
range: 2201..2202,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2201..2202,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 2201..2202,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 2209..2213,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 2216..2242,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 2220..2223,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 2223..2232,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [
ParameterWithDefault {
range: 2224..2227,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2224..2225,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 2224..2225,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 2226..2227,
value: Int(
1,
),
},
),
),
},
],
args: [],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 2238..2242,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 2245..2277,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 2249..2252,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 2252..2267,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [
ParameterWithDefault {
range: 2253..2254,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2253..2254,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 2253..2254,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 2256..2257,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2256..2257,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 2256..2257,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
args: [],
vararg: None,
kwonlyargs: [
ParameterWithDefault {
range: 2265..2266,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2265..2266,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 2265..2266,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 2273..2277,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 2280..2309,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 2284..2287,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 2287..2299,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 2288..2292,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2288..2290,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("kw"),
range: 2288..2290,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 2291..2292,
value: Int(
1,
),
},
),
),
},
],
vararg: None,
kwonlyargs: [
ParameterWithDefault {
range: 2297..2298,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2297..2298,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 2297..2298,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 2305..2309,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 2312..2357,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 2316..2319,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 2319..2347,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 2320..2326,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2320..2326,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("x"),
range: 2320..2321,
node_index: AtomicNodeIndex(..),
},
annotation: Some(
Name(
ExprName {
node_index: AtomicNodeIndex(..),
range: 2323..2326,
id: Name("int"),
ctx: Load,
},
),
),
},
default: None,
},
ParameterWithDefault {
range: 2328..2336,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2328..2336,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("y"),
range: 2328..2329,
node_index: AtomicNodeIndex(..),
},
annotation: Some(
StringLiteral(
ExprStringLiteral {
node_index: AtomicNodeIndex(..),
range: 2331..2336,
value: StringLiteralValue {
inner: Single(
StringLiteral {
range: 2331..2336,
node_index: AtomicNodeIndex(..),
value: "str",
flags: StringLiteralFlags {
quote_style: Double,
prefix: Empty,
triple_quoted: false,
},
},
),
},
},
),
),
},
default: None,
},
ParameterWithDefault {
range: 2338..2346,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2338..2346,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("z"),
range: 2338..2339,
node_index: AtomicNodeIndex(..),
},
annotation: Some(
BinOp(
ExprBinOp {
node_index: AtomicNodeIndex(..),
range: 2341..2346,
left: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 2341..2342,
value: Int(
1,
),
},
),
op: Add,
right: NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 2345..2346,
value: Int(
2,
),
},
),
},
),
),
},
default: None,
},
],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 2353..2357,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
node_index: AtomicNodeIndex(..),
range: 2360..2398,
is_async: false,
decorator_list: [],
name: Identifier {
id: Name("foo"),
range: 2364..2367,
node_index: AtomicNodeIndex(..),
},
type_params: None,
parameters: Parameters {
range: 2367..2388,
node_index: AtomicNodeIndex(
0,
),
posonlyargs: [],
args: [
ParameterWithDefault {
range: 2368..2372,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2368..2372,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("self"),
range: 2368..2372,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: None,
},
ParameterWithDefault {
range: 2374..2377,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2374..2375,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("a"),
range: 2374..2375,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 2376..2377,
value: Int(
1,
),
},
),
),
},
ParameterWithDefault {
range: 2379..2382,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2379..2380,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("b"),
range: 2379..2380,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 2381..2382,
value: Int(
2,
),
},
),
),
},
ParameterWithDefault {
range: 2384..2387,
node_index: AtomicNodeIndex(..),
parameter: Parameter {
range: 2384..2385,
node_index: AtomicNodeIndex(..),
name: Identifier {
id: Name("c"),
range: 2384..2385,
node_index: AtomicNodeIndex(..),
},
annotation: None,
},
default: Some(
NumberLiteral(
ExprNumberLiteral {
node_index: AtomicNodeIndex(..),
range: 2386..2387,
value: Int(
3,
),
},
),
),
},
],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
node_index: AtomicNodeIndex(..),
range: 2394..2398,
},
),
],
},
),
],
},
)
```