Add a TypeParams node to the AST (#6261)

## Summary

Similar to #6259, this PR adds a `TypeParams` node to the AST, to
capture the list of type parameters with their surrounding brackets.

If a statement lacks type parameters, the `type_params` field will be
`None`.
This commit is contained in:
Charlie Marsh 2023-08-02 10:12:45 -04:00 committed by GitHub
parent 981e64f82b
commit b095b7204b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
31 changed files with 1104 additions and 866 deletions

View file

@ -7,10 +7,12 @@ Ok(
FunctionDef(
StmtFunctionDef {
range: 0..23,
decorator_list: [],
name: Identifier {
id: "f",
range: 4..5,
},
type_params: None,
parameters: Parameters {
range: 5..17,
posonlyargs: [],
@ -56,6 +58,7 @@ Ok(
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
@ -63,9 +66,6 @@ Ok(
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
],

View file

@ -7,10 +7,12 @@ Ok(
FunctionDef(
StmtFunctionDef {
range: 0..29,
decorator_list: [],
name: Identifier {
id: "f",
range: 4..5,
},
type_params: None,
parameters: Parameters {
range: 5..23,
posonlyargs: [],
@ -76,6 +78,7 @@ Ok(
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
@ -83,9 +86,6 @@ Ok(
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
],

View file

@ -7,10 +7,12 @@ Ok(
FunctionDef(
StmtFunctionDef {
range: 0..13,
decorator_list: [],
name: Identifier {
id: "f",
range: 4..5,
},
type_params: None,
parameters: Parameters {
range: 5..7,
posonlyargs: [],
@ -19,6 +21,7 @@ Ok(
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
@ -26,9 +29,6 @@ Ok(
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
],

View file

@ -7,10 +7,12 @@ Ok(
FunctionDef(
StmtFunctionDef {
range: 0..13,
decorator_list: [],
name: Identifier {
id: "f",
range: 4..5,
},
type_params: None,
parameters: Parameters {
range: 5..7,
posonlyargs: [],
@ -19,6 +21,7 @@ Ok(
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
@ -26,9 +29,6 @@ Ok(
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
],

View file

@ -7,10 +7,12 @@ Ok(
FunctionDef(
StmtFunctionDef {
range: 0..32,
decorator_list: [],
name: Identifier {
id: "f",
range: 4..5,
},
type_params: None,
parameters: Parameters {
range: 5..26,
posonlyargs: [],
@ -93,6 +95,7 @@ Ok(
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
@ -100,9 +103,6 @@ Ok(
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
],

View file

@ -7,10 +7,12 @@ Ok(
FunctionDef(
StmtFunctionDef {
range: 0..38,
decorator_list: [],
name: Identifier {
id: "f",
range: 4..5,
},
type_params: None,
parameters: Parameters {
range: 5..32,
posonlyargs: [],
@ -113,6 +115,7 @@ Ok(
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
@ -120,9 +123,6 @@ Ok(
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
],

View file

@ -7,10 +7,12 @@ Ok(
FunctionDef(
StmtFunctionDef {
range: 0..42,
decorator_list: [],
name: Identifier {
id: "f",
range: 4..5,
},
type_params: None,
parameters: Parameters {
range: 5..36,
posonlyargs: [],
@ -122,6 +124,7 @@ Ok(
],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
@ -129,9 +132,6 @@ Ok(
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
],

View file

@ -7,10 +7,12 @@ Ok(
FunctionDef(
StmtFunctionDef {
range: 0..52,
decorator_list: [],
name: Identifier {
id: "f",
range: 4..5,
},
type_params: None,
parameters: Parameters {
range: 5..46,
posonlyargs: [],
@ -131,6 +133,7 @@ Ok(
},
),
},
returns: None,
body: [
Pass(
StmtPass {
@ -138,9 +141,6 @@ Ok(
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
],

View file

@ -7,10 +7,12 @@ Ok(
FunctionDef(
StmtFunctionDef {
range: 0..20,
decorator_list: [],
name: Identifier {
id: "f",
range: 4..5,
},
type_params: None,
parameters: Parameters {
range: 5..14,
posonlyargs: [],
@ -56,6 +58,7 @@ Ok(
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
@ -63,9 +66,6 @@ Ok(
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
],

View file

@ -7,10 +7,12 @@ Ok(
FunctionDef(
StmtFunctionDef {
range: 0..26,
decorator_list: [],
name: Identifier {
id: "f",
range: 4..5,
},
type_params: None,
parameters: Parameters {
range: 5..20,
posonlyargs: [],
@ -76,6 +78,7 @@ Ok(
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
@ -83,9 +86,6 @@ Ok(
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
],

View file

@ -7,10 +7,12 @@ Ok(
FunctionDef(
StmtFunctionDef {
range: 0..20,
decorator_list: [],
name: Identifier {
id: "f",
range: 4..5,
},
type_params: None,
parameters: Parameters {
range: 5..14,
posonlyargs: [],
@ -56,6 +58,7 @@ Ok(
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
@ -63,9 +66,6 @@ Ok(
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
],

View file

@ -6,25 +6,6 @@ expression: parse_ast
FunctionDef(
StmtFunctionDef {
range: 0..34,
name: Identifier {
id: "test",
range: 18..22,
},
parameters: Parameters {
range: 22..24,
posonlyargs: [],
args: [],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
body: [
Pass(
StmtPass {
range: 30..34,
},
),
],
decorator_list: [
Decorator {
range: 0..13,
@ -37,26 +18,32 @@ expression: parse_ast
),
},
],
name: Identifier {
id: "test",
range: 18..22,
},
type_params: None,
parameters: Parameters {
range: 22..24,
posonlyargs: [],
args: [],
vararg: None,
kwonlyargs: [],
kwarg: None,
},
returns: None,
type_params: [],
body: [
Pass(
StmtPass {
range: 30..34,
},
),
],
},
),
ClassDef(
StmtClassDef {
range: 36..73,
name: Identifier {
id: "Abcd",
range: 59..63,
},
arguments: None,
body: [
Pass(
StmtPass {
range: 69..73,
},
),
],
type_params: [],
decorator_list: [
Decorator {
range: 36..52,
@ -69,6 +56,19 @@ expression: parse_ast
),
},
],
name: Identifier {
id: "Abcd",
range: 59..63,
},
type_params: None,
arguments: None,
body: [
Pass(
StmtPass {
range: 69..73,
},
),
],
},
),
]

View file

@ -125,10 +125,12 @@ Module(
FunctionDef(
StmtFunctionDef {
range: 566..626,
decorator_list: [],
name: Identifier {
id: "foo",
range: 570..573,
},
type_params: None,
parameters: Parameters {
range: 573..575,
posonlyargs: [],
@ -137,6 +139,7 @@ Module(
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Return(
StmtReturn {
@ -170,9 +173,6 @@ Module(
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
LineMagic(

View file

@ -6,10 +6,12 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
ClassDef(
StmtClassDef {
range: 0..98,
decorator_list: [],
name: Identifier {
id: "Foo",
range: 6..9,
},
type_params: None,
arguments: Some(
Arguments {
range: 9..15,
@ -36,10 +38,12 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
FunctionDef(
StmtFunctionDef {
range: 18..44,
decorator_list: [],
name: Identifier {
id: "__init__",
range: 22..30,
},
type_params: None,
parameters: Parameters {
range: 30..36,
posonlyargs: [],
@ -61,6 +65,7 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
@ -68,18 +73,17 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
FunctionDef(
StmtFunctionDef {
range: 46..98,
decorator_list: [],
name: Identifier {
id: "method_with_default",
range: 50..69,
},
type_params: None,
parameters: Parameters {
range: 69..90,
posonlyargs: [],
@ -123,6 +127,7 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
@ -130,14 +135,9 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
],
type_params: [],
decorator_list: [],
},
),
]

View file

@ -6,10 +6,28 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
ClassDef(
StmtClassDef {
range: 10..29,
decorator_list: [],
name: Identifier {
id: "Foo",
range: 16..19,
},
type_params: Some(
TypeParams {
range: 19..22,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 20..21,
name: Identifier {
id: "T",
range: 20..21,
},
bound: None,
},
),
],
},
),
arguments: Some(
Arguments {
range: 22..24,
@ -31,28 +49,41 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
type_params: [
TypeVar(
TypeParamTypeVar {
range: 20..21,
name: Identifier {
id: "T",
range: 20..21,
},
bound: None,
},
),
],
decorator_list: [],
},
),
ClassDef(
StmtClassDef {
range: 52..76,
decorator_list: [],
name: Identifier {
id: "Foo",
range: 58..61,
},
type_params: Some(
TypeParams {
range: 61..69,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 62..68,
name: Identifier {
id: "T",
range: 62..63,
},
bound: Some(
Name(
ExprName {
range: 65..68,
id: "str",
ctx: Load,
},
),
),
},
),
],
},
),
arguments: Some(
Arguments {
range: 69..71,
@ -74,36 +105,56 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
type_params: [
TypeVar(
TypeParamTypeVar {
range: 62..68,
name: Identifier {
id: "T",
range: 62..63,
},
bound: Some(
Name(
ExprName {
range: 65..68,
id: "str",
ctx: Load,
},
),
),
},
),
],
decorator_list: [],
},
),
ClassDef(
StmtClassDef {
range: 105..138,
decorator_list: [],
name: Identifier {
id: "Foo",
range: 111..114,
},
type_params: Some(
TypeParams {
range: 114..131,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 115..130,
name: Identifier {
id: "T",
range: 115..116,
},
bound: Some(
Tuple(
ExprTuple {
range: 118..130,
elts: [
Name(
ExprName {
range: 119..122,
id: "str",
ctx: Load,
},
),
Name(
ExprName {
range: 124..129,
id: "bytes",
ctx: Load,
},
),
],
ctx: Load,
},
),
),
},
),
],
},
),
arguments: Some(
Arguments {
range: 131..133,
@ -125,51 +176,43 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
type_params: [
TypeVar(
TypeParamTypeVar {
range: 115..130,
name: Identifier {
id: "T",
range: 115..116,
},
bound: Some(
Tuple(
ExprTuple {
range: 118..130,
elts: [
Name(
ExprName {
range: 119..122,
id: "str",
ctx: Load,
},
),
Name(
ExprName {
range: 124..129,
id: "bytes",
ctx: Load,
},
),
],
ctx: Load,
},
),
),
},
),
],
decorator_list: [],
},
),
ClassDef(
StmtClassDef {
range: 159..181,
decorator_list: [],
name: Identifier {
id: "Foo",
range: 165..168,
},
type_params: Some(
TypeParams {
range: 168..174,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 169..170,
name: Identifier {
id: "T",
range: 169..170,
},
bound: None,
},
),
TypeVar(
TypeParamTypeVar {
range: 172..173,
name: Identifier {
id: "U",
range: 172..173,
},
bound: None,
},
),
],
},
),
arguments: Some(
Arguments {
range: 174..176,
@ -191,38 +234,43 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
type_params: [
TypeVar(
TypeParamTypeVar {
range: 169..170,
name: Identifier {
id: "T",
range: 169..170,
},
bound: None,
},
),
TypeVar(
TypeParamTypeVar {
range: 172..173,
name: Identifier {
id: "U",
range: 172..173,
},
bound: None,
},
),
],
decorator_list: [],
},
),
ClassDef(
StmtClassDef {
range: 200..223,
decorator_list: [],
name: Identifier {
id: "Foo",
range: 206..209,
},
type_params: Some(
TypeParams {
range: 209..216,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 210..211,
name: Identifier {
id: "T",
range: 210..211,
},
bound: None,
},
),
TypeVar(
TypeParamTypeVar {
range: 213..214,
name: Identifier {
id: "U",
range: 213..214,
},
bound: None,
},
),
],
},
),
arguments: Some(
Arguments {
range: 216..218,
@ -244,38 +292,32 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
type_params: [
TypeVar(
TypeParamTypeVar {
range: 210..211,
name: Identifier {
id: "T",
range: 210..211,
},
bound: None,
},
),
TypeVar(
TypeParamTypeVar {
range: 213..214,
name: Identifier {
id: "U",
range: 213..214,
},
bound: None,
},
),
],
decorator_list: [],
},
),
ClassDef(
StmtClassDef {
range: 240..261,
decorator_list: [],
name: Identifier {
id: "Foo",
range: 246..249,
},
type_params: Some(
TypeParams {
range: 249..254,
type_params: [
TypeVarTuple(
TypeParamTypeVarTuple {
range: 250..253,
name: Identifier {
id: "Ts",
range: 251..253,
},
},
),
],
},
),
arguments: Some(
Arguments {
range: 254..256,
@ -297,27 +339,32 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
type_params: [
TypeVarTuple(
TypeParamTypeVarTuple {
range: 250..253,
name: Identifier {
id: "Ts",
range: 251..253,
},
},
),
],
decorator_list: [],
},
),
ClassDef(
StmtClassDef {
range: 275..296,
decorator_list: [],
name: Identifier {
id: "Foo",
range: 281..284,
},
type_params: Some(
TypeParams {
range: 284..289,
type_params: [
ParamSpec(
TypeParamParamSpec {
range: 285..288,
name: Identifier {
id: "P",
range: 287..288,
},
},
),
],
},
),
arguments: Some(
Arguments {
range: 289..291,
@ -339,27 +386,69 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
type_params: [
ParamSpec(
TypeParamParamSpec {
range: 285..288,
name: Identifier {
id: "P",
range: 287..288,
},
},
),
],
decorator_list: [],
},
),
ClassDef(
StmtClassDef {
range: 312..351,
decorator_list: [],
name: Identifier {
id: "Foo",
range: 318..321,
},
type_params: Some(
TypeParams {
range: 321..341,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 322..323,
name: Identifier {
id: "X",
range: 322..323,
},
bound: None,
},
),
TypeVar(
TypeParamTypeVar {
range: 325..331,
name: Identifier {
id: "Y",
range: 325..326,
},
bound: Some(
Name(
ExprName {
range: 328..331,
id: "str",
ctx: Load,
},
),
),
},
),
TypeVarTuple(
TypeParamTypeVarTuple {
range: 333..335,
name: Identifier {
id: "U",
range: 334..335,
},
},
),
ParamSpec(
TypeParamParamSpec {
range: 337..340,
name: Identifier {
id: "P",
range: 339..340,
},
},
),
],
},
),
arguments: Some(
Arguments {
range: 341..343,
@ -374,55 +463,6 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
type_params: [
TypeVar(
TypeParamTypeVar {
range: 322..323,
name: Identifier {
id: "X",
range: 322..323,
},
bound: None,
},
),
TypeVar(
TypeParamTypeVar {
range: 325..331,
name: Identifier {
id: "Y",
range: 325..326,
},
bound: Some(
Name(
ExprName {
range: 328..331,
id: "str",
ctx: Load,
},
),
),
},
),
TypeVarTuple(
TypeParamTypeVarTuple {
range: 333..335,
name: Identifier {
id: "U",
range: 334..335,
},
},
),
ParamSpec(
TypeParamParamSpec {
range: 337..340,
name: Identifier {
id: "P",
range: 339..340,
},
},
),
],
decorator_list: [],
},
),
]

View file

@ -6,10 +6,12 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
FunctionDef(
StmtFunctionDef {
range: 0..20,
decorator_list: [],
name: Identifier {
id: "func",
range: 4..8,
},
type_params: None,
parameters: Parameters {
range: 8..11,
posonlyargs: [],
@ -31,6 +33,7 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Expr(
StmtExpr {
@ -45,18 +48,33 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
decorator_list: [],
returns: None,
type_params: [],
},
),
FunctionDef(
StmtFunctionDef {
range: 22..53,
decorator_list: [],
name: Identifier {
id: "func",
range: 26..30,
},
type_params: Some(
TypeParams {
range: 30..33,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 31..32,
name: Identifier {
id: "T",
range: 31..32,
},
bound: None,
},
),
],
},
),
parameters: Parameters {
range: 33..39,
posonlyargs: [],
@ -86,6 +104,15 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
kwonlyargs: [],
kwarg: None,
},
returns: Some(
Name(
ExprName {
range: 43..44,
id: "T",
ctx: Load,
},
),
),
body: [
Expr(
StmtExpr {
@ -100,37 +127,41 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
decorator_list: [],
returns: Some(
Name(
ExprName {
range: 43..44,
id: "T",
ctx: Load,
},
),
),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 31..32,
name: Identifier {
id: "T",
range: 31..32,
},
bound: None,
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
range: 55..91,
decorator_list: [],
name: Identifier {
id: "func",
range: 59..63,
},
type_params: Some(
TypeParams {
range: 63..71,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 64..70,
name: Identifier {
id: "T",
range: 64..65,
},
bound: Some(
Name(
ExprName {
range: 67..70,
id: "str",
ctx: Load,
},
),
),
},
),
],
},
),
parameters: Parameters {
range: 71..77,
posonlyargs: [],
@ -160,6 +191,15 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
kwonlyargs: [],
kwarg: None,
},
returns: Some(
Name(
ExprName {
range: 81..82,
id: "T",
ctx: Load,
},
),
),
body: [
Expr(
StmtExpr {
@ -174,45 +214,56 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
decorator_list: [],
returns: Some(
Name(
ExprName {
range: 81..82,
id: "T",
ctx: Load,
},
),
),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 64..70,
name: Identifier {
id: "T",
range: 64..65,
},
bound: Some(
Name(
ExprName {
range: 67..70,
id: "str",
ctx: Load,
},
),
),
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
range: 93..138,
decorator_list: [],
name: Identifier {
id: "func",
range: 97..101,
},
type_params: Some(
TypeParams {
range: 101..118,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 102..117,
name: Identifier {
id: "T",
range: 102..103,
},
bound: Some(
Tuple(
ExprTuple {
range: 105..117,
elts: [
Name(
ExprName {
range: 106..109,
id: "str",
ctx: Load,
},
),
Name(
ExprName {
range: 111..116,
id: "bytes",
ctx: Load,
},
),
],
ctx: Load,
},
),
),
},
),
],
},
),
parameters: Parameters {
range: 118..124,
posonlyargs: [],
@ -242,6 +293,15 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
kwonlyargs: [],
kwarg: None,
},
returns: Some(
Name(
ExprName {
range: 128..129,
id: "T",
ctx: Load,
},
),
),
body: [
Expr(
StmtExpr {
@ -256,60 +316,32 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
decorator_list: [],
returns: Some(
Name(
ExprName {
range: 128..129,
id: "T",
ctx: Load,
},
),
),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 102..117,
name: Identifier {
id: "T",
range: 102..103,
},
bound: Some(
Tuple(
ExprTuple {
range: 105..117,
elts: [
Name(
ExprName {
range: 106..109,
id: "str",
ctx: Load,
},
),
Name(
ExprName {
range: 111..116,
id: "bytes",
ctx: Load,
},
),
],
ctx: Load,
},
),
),
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
range: 140..171,
decorator_list: [],
name: Identifier {
id: "func",
range: 144..148,
},
type_params: Some(
TypeParams {
range: 148..153,
type_params: [
TypeVarTuple(
TypeParamTypeVarTuple {
range: 149..152,
name: Identifier {
id: "Ts",
range: 150..152,
},
},
),
],
},
),
parameters: Parameters {
range: 153..162,
posonlyargs: [],
@ -341,6 +373,7 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Expr(
StmtExpr {
@ -355,28 +388,32 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
decorator_list: [],
returns: None,
type_params: [
TypeVarTuple(
TypeParamTypeVarTuple {
range: 149..152,
name: Identifier {
id: "Ts",
range: 150..152,
},
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
range: 173..230,
decorator_list: [],
name: Identifier {
id: "func",
range: 177..181,
},
type_params: Some(
TypeParams {
range: 181..186,
type_params: [
ParamSpec(
TypeParamParamSpec {
range: 182..185,
name: Identifier {
id: "P",
range: 184..185,
},
},
),
],
},
),
parameters: Parameters {
range: 186..221,
posonlyargs: [],
@ -439,6 +476,7 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
},
returns: None,
body: [
Expr(
StmtExpr {
@ -453,28 +491,69 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
decorator_list: [],
returns: None,
type_params: [
ParamSpec(
TypeParamParamSpec {
range: 182..185,
name: Identifier {
id: "P",
range: 184..185,
},
},
),
],
},
),
FunctionDef(
StmtFunctionDef {
range: 232..273,
decorator_list: [],
name: Identifier {
id: "func",
range: 236..240,
},
type_params: Some(
TypeParams {
range: 240..261,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 241..242,
name: Identifier {
id: "T",
range: 241..242,
},
bound: None,
},
),
TypeVar(
TypeParamTypeVar {
range: 244..250,
name: Identifier {
id: "U",
range: 244..245,
},
bound: Some(
Name(
ExprName {
range: 247..250,
id: "str",
ctx: Load,
},
),
),
},
),
TypeVarTuple(
TypeParamTypeVarTuple {
range: 252..255,
name: Identifier {
id: "Ts",
range: 253..255,
},
},
),
ParamSpec(
TypeParamParamSpec {
range: 257..260,
name: Identifier {
id: "P",
range: 259..260,
},
},
),
],
},
),
parameters: Parameters {
range: 261..263,
posonlyargs: [],
@ -483,6 +562,7 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
kwonlyargs: [],
kwarg: None,
},
returns: None,
body: [
Pass(
StmtPass {
@ -490,56 +570,6 @@ expression: "parse_suite(source, \"<test>\").unwrap()"
},
),
],
decorator_list: [],
returns: None,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 241..242,
name: Identifier {
id: "T",
range: 241..242,
},
bound: None,
},
),
TypeVar(
TypeParamTypeVar {
range: 244..250,
name: Identifier {
id: "U",
range: 244..245,
},
bound: Some(
Name(
ExprName {
range: 247..250,
id: "str",
ctx: Load,
},
),
),
},
),
TypeVarTuple(
TypeParamTypeVarTuple {
range: 252..255,
name: Identifier {
id: "Ts",
range: 253..255,
},
},
),
ParamSpec(
TypeParamParamSpec {
range: 257..260,
name: Identifier {
id: "P",
range: 259..260,
},
},
),
],
},
),
]

View file

@ -1,6 +1,6 @@
---
source: crates/ruff_python_parser/src/parser.rs
expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
expression: "parse_suite(source, \"<test>\").unwrap()"
---
[
TypeAlias(
@ -13,7 +13,7 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [],
type_params: None,
value: Name(
ExprName {
range: 10..13,
@ -33,7 +33,7 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [],
type_params: None,
value: BinOp(
ExprBinOp {
range: 23..32,
@ -66,7 +66,7 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [],
type_params: None,
value: BinOp(
ExprBinOp {
range: 42..61,
@ -101,18 +101,23 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 69..70,
name: Identifier {
id: "T",
range: 69..70,
},
bound: None,
},
),
],
type_params: Some(
TypeParams {
range: 68..71,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 69..70,
name: Identifier {
id: "T",
range: 69..70,
},
bound: None,
},
),
],
},
),
value: BinOp(
ExprBinOp {
range: 74..88,
@ -171,18 +176,23 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 109..110,
name: Identifier {
id: "T",
range: 109..110,
},
bound: None,
},
),
],
type_params: Some(
TypeParams {
range: 108..111,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 109..110,
name: Identifier {
id: "T",
range: 109..110,
},
bound: None,
},
),
],
},
),
value: Name(
ExprName {
range: 114..117,
@ -202,18 +212,23 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 125..126,
name: Identifier {
id: "T",
range: 125..126,
},
bound: None,
},
),
],
type_params: Some(
TypeParams {
range: 124..127,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 125..126,
name: Identifier {
id: "T",
range: 125..126,
},
bound: None,
},
),
],
},
),
value: BinOp(
ExprBinOp {
range: 130..146,
@ -272,36 +287,41 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 154..155,
name: Identifier {
id: "T",
range: 154..155,
},
bound: None,
},
),
TypeVarTuple(
TypeParamTypeVarTuple {
range: 157..160,
name: Identifier {
id: "Ts",
range: 158..160,
},
},
),
ParamSpec(
TypeParamParamSpec {
range: 162..165,
name: Identifier {
id: "P",
range: 164..165,
},
},
),
],
type_params: Some(
TypeParams {
range: 153..166,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 154..155,
name: Identifier {
id: "T",
range: 154..155,
},
bound: None,
},
),
TypeVarTuple(
TypeParamTypeVarTuple {
range: 157..160,
name: Identifier {
id: "Ts",
range: 158..160,
},
},
),
ParamSpec(
TypeParamParamSpec {
range: 162..165,
name: Identifier {
id: "P",
range: 164..165,
},
},
),
],
},
),
value: Tuple(
ExprTuple {
range: 169..179,
@ -343,44 +363,49 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 187..193,
name: Identifier {
id: "T",
range: 187..188,
},
bound: Some(
Name(
ExprName {
range: 190..193,
id: "int",
ctx: Load,
type_params: Some(
TypeParams {
range: 186..204,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 187..193,
name: Identifier {
id: "T",
range: 187..188,
},
),
bound: Some(
Name(
ExprName {
range: 190..193,
id: "int",
ctx: Load,
},
),
),
},
),
},
),
TypeVarTuple(
TypeParamTypeVarTuple {
range: 195..198,
name: Identifier {
id: "Ts",
range: 196..198,
},
},
),
ParamSpec(
TypeParamParamSpec {
range: 200..203,
name: Identifier {
id: "P",
range: 202..203,
},
},
),
],
TypeVarTuple(
TypeParamTypeVarTuple {
range: 195..198,
name: Identifier {
id: "Ts",
range: 196..198,
},
},
),
ParamSpec(
TypeParamParamSpec {
range: 200..203,
name: Identifier {
id: "P",
range: 202..203,
},
},
),
],
},
),
value: Tuple(
ExprTuple {
range: 207..217,
@ -422,59 +447,64 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 225..238,
name: Identifier {
id: "T",
range: 225..226,
},
bound: Some(
Tuple(
ExprTuple {
range: 228..238,
elts: [
Name(
ExprName {
range: 229..232,
id: "int",
ctx: Load,
},
),
Name(
ExprName {
range: 234..237,
id: "str",
ctx: Load,
},
),
],
ctx: Load,
type_params: Some(
TypeParams {
range: 224..249,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 225..238,
name: Identifier {
id: "T",
range: 225..226,
},
),
bound: Some(
Tuple(
ExprTuple {
range: 228..238,
elts: [
Name(
ExprName {
range: 229..232,
id: "int",
ctx: Load,
},
),
Name(
ExprName {
range: 234..237,
id: "str",
ctx: Load,
},
),
],
ctx: Load,
},
),
),
},
),
},
),
TypeVarTuple(
TypeParamTypeVarTuple {
range: 240..243,
name: Identifier {
id: "Ts",
range: 241..243,
},
},
),
ParamSpec(
TypeParamParamSpec {
range: 245..248,
name: Identifier {
id: "P",
range: 247..248,
},
},
),
],
TypeVarTuple(
TypeParamTypeVarTuple {
range: 240..243,
name: Identifier {
id: "Ts",
range: 241..243,
},
},
),
ParamSpec(
TypeParamParamSpec {
range: 245..248,
name: Identifier {
id: "P",
range: 247..248,
},
},
),
],
},
),
value: Tuple(
ExprTuple {
range: 252..262,
@ -516,7 +546,7 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [],
type_params: None,
value: Name(
ExprName {
range: 305..308,
@ -536,7 +566,7 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [],
type_params: None,
value: Name(
ExprName {
range: 322..325,
@ -556,7 +586,7 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [],
type_params: None,
value: Name(
ExprName {
range: 338..341,
@ -576,7 +606,7 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [],
type_params: None,
value: Name(
ExprName {
range: 378..382,
@ -596,7 +626,7 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [],
type_params: None,
value: Name(
ExprName {
range: 394..399,
@ -616,7 +646,7 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [],
type_params: None,
value: Name(
ExprName {
range: 411..415,
@ -636,7 +666,7 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [],
type_params: None,
value: Name(
ExprName {
range: 451..454,
@ -656,7 +686,7 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [],
type_params: None,
value: Name(
ExprName {
range: 467..470,
@ -676,7 +706,7 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [],
type_params: None,
value: Name(
ExprName {
range: 483..486,
@ -696,7 +726,7 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [],
type_params: None,
value: Name(
ExprName {
range: 502..505,
@ -716,18 +746,23 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 521..522,
name: Identifier {
id: "T",
range: 521..522,
},
bound: None,
},
),
],
type_params: Some(
TypeParams {
range: 520..523,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 521..522,
name: Identifier {
id: "T",
range: 521..522,
},
bound: None,
},
),
],
},
),
value: Name(
ExprName {
range: 526..527,
@ -747,18 +782,23 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 542..543,
name: Identifier {
id: "T",
range: 542..543,
},
bound: None,
},
),
],
type_params: Some(
TypeParams {
range: 541..544,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 542..543,
name: Identifier {
id: "T",
range: 542..543,
},
bound: None,
},
),
],
},
),
value: Name(
ExprName {
range: 547..548,
@ -778,18 +818,23 @@ expression: "ast::Suite::parse(source, \"<test>\").unwrap()"
ctx: Store,
},
),
type_params: [
TypeVar(
TypeParamTypeVar {
range: 556..557,
name: Identifier {
id: "T",
range: 556..557,
},
bound: None,
},
),
],
type_params: Some(
TypeParams {
range: 555..558,
type_params: [
TypeVar(
TypeParamTypeVar {
range: 556..557,
name: Identifier {
id: "T",
range: 556..557,
},
bound: None,
},
),
],
},
),
value: Name(
ExprName {
range: 567..568,

View file

@ -6,10 +6,12 @@ expression: parse_ast
FunctionDef(
StmtFunctionDef {
range: 1..49,
decorator_list: [],
name: Identifier {
id: "args_to_tuple",
range: 5..18,
},
type_params: None,
parameters: Parameters {
range: 18..30,
posonlyargs: [],
@ -41,21 +43,6 @@ expression: parse_ast
kwonlyargs: [],
kwarg: None,
},
body: [
Expr(
StmtExpr {
range: 46..49,
value: Constant(
ExprConstant {
range: 46..49,
value: Ellipsis,
kind: None,
},
),
},
),
],
decorator_list: [],
returns: Some(
Subscript(
ExprSubscript {
@ -84,7 +71,20 @@ expression: parse_ast
},
),
),
type_params: [],
body: [
Expr(
StmtExpr {
range: 46..49,
value: Constant(
ExprConstant {
range: 46..49,
value: Ellipsis,
kind: None,
},
),
},
),
],
},
),
]