mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-24 13:33:50 +00:00
Fix incorrect Parameter
range for *args
and **kwargs
(#10283)
## Summary Fix #10282 This PR updates the Python grammar to include the `*` character in `*args` `**kwargs` in the range of the `Parameter` ``` def f(*args, **kwargs): pass # ~~~~ ~~~~~~ <-- range before the PR # ^^^^^ ^^^^^^^^ <-- range after ``` The invalid syntax `def f(*, **kwargs): ...` is also now correctly reported. ## Test Plan Test cases were added to `function.rs`.
This commit is contained in:
parent
b64f2ea401
commit
a067d87ccc
23 changed files with 28521 additions and 28529 deletions
|
@ -176,19 +176,27 @@ mod tests {
|
|||
function_and_lambda! {
|
||||
test_function_no_args: "def f(): pass",
|
||||
test_function_pos_args: "def f(a, b, c): pass",
|
||||
test_function_pos_args_with_defaults: "def f(a, b=20, c=30): pass",
|
||||
test_function_posonly_and_pos_args: "def f(a, /, b, c): pass",
|
||||
test_function_pos_args_with_defaults: "def f(a, b=20, /, c=30): pass",
|
||||
test_function_pos_args_with_defaults_and_varargs_and_kwargs: "def f(a, b=20, /, c=30, *args, **kwargs): pass",
|
||||
test_function_kw_only_args: "def f(*, a, b, c): pass",
|
||||
test_function_kw_only_args_with_defaults: "def f(*, a, b=20, c=30): pass",
|
||||
test_function_pos_and_kw_only_args: "def f(a, b, c, *, d, e, f): pass",
|
||||
test_function_pos_and_kw_only_args_with_defaults: "def f(a, b, c, *, d, e=20, f=30): pass",
|
||||
test_function_pos_and_kw_only_args_with_defaults_and_varargs: "def f(a, b, c, *args, d, e=20, f=30): pass",
|
||||
test_function_pos_and_kw_only_args_with_defaults_and_varargs_and_kwargs: "def f(a, b, c, *args, d, e=20, f=30, **kwargs): pass",
|
||||
test_function_kw_only_args_with_defaults_and_varargs: "def f(*args, a, b=20, c=30): pass",
|
||||
test_function_kw_only_args_with_defaults_and_kwargs: "def f(*, a, b=20, c=30, **kwargs): pass",
|
||||
test_function_kw_only_args_with_defaults_and_varargs_and_kwargs: "def f(*args, a, b=20, c=30, **kwargs): pass",
|
||||
test_function_pos_and_kw_only_args: "def f(a, b, /, c, *, d, e, f): pass",
|
||||
test_function_pos_and_kw_only_args_with_defaults: "def f(a, b, /, c, *, d, e=20, f=30): pass",
|
||||
test_function_pos_and_kw_only_args_with_defaults_and_varargs: "def f(a, b, /, c, *args, d, e=20, f=30): pass",
|
||||
test_function_pos_and_kw_only_args_with_defaults_and_kwargs: "def f(a, b, /, c, *, d, e=20, f=30, **kwargs): pass",
|
||||
test_function_pos_and_kw_only_args_with_defaults_and_varargs_and_kwargs: "def f(a, b, /, c, *args, d, e=20, f=30, **kwargs): pass",
|
||||
test_lambda_no_args: "lambda: 1",
|
||||
test_lambda_pos_args: "lambda a, b, c: 1",
|
||||
test_lambda_pos_args_with_defaults: "lambda a, b=20, c=30: 1",
|
||||
test_lambda_posonly_args: "lambda a, b, /, c: 1",
|
||||
test_lambda_pos_args_with_defaults: "lambda a, b=20, /, c=30: 1",
|
||||
test_lambda_kw_only_args: "lambda *, a, b, c: 1",
|
||||
test_lambda_kw_only_args_with_defaults: "lambda *, a, b=20, c=30: 1",
|
||||
test_lambda_pos_and_kw_only_args: "lambda a, b, c, *, d, e: 0",
|
||||
test_lambda_pos_and_kw_only_args: "lambda a, b, /, c, *, d, e: 0",
|
||||
test_lambda_pos_and_kw_only_args_and_vararg_and_kwarg: "lambda a, b, /, c, *d, e, **f: 0",
|
||||
}
|
||||
|
||||
fn function_parse_error(src: &str) -> LexicalErrorType {
|
||||
|
@ -219,14 +227,16 @@ mod tests {
|
|||
test_duplicates_f2: "def f(a, *, a): pass", LexicalErrorType::DuplicateArgumentError("a".to_string().into_boxed_str()),
|
||||
test_duplicates_f3: "def f(a, a=20): pass", LexicalErrorType::DuplicateArgumentError("a".to_string().into_boxed_str()),
|
||||
test_duplicates_f4: "def f(a, *a): pass", LexicalErrorType::DuplicateArgumentError("a".to_string().into_boxed_str()),
|
||||
test_duplicates_f5: "def f(a, *, **a): pass", LexicalErrorType::DuplicateArgumentError("a".to_string().into_boxed_str()),
|
||||
test_duplicates_f5: "def f(a, *, b, **a): pass", LexicalErrorType::DuplicateArgumentError("a".to_string().into_boxed_str()),
|
||||
test_duplicates_l1: "lambda a, a: 1", LexicalErrorType::DuplicateArgumentError("a".to_string().into_boxed_str()),
|
||||
test_duplicates_l2: "lambda a, *, a: 1", LexicalErrorType::DuplicateArgumentError("a".to_string().into_boxed_str()),
|
||||
test_duplicates_l3: "lambda a, a=20: 1", LexicalErrorType::DuplicateArgumentError("a".to_string().into_boxed_str()),
|
||||
test_duplicates_l4: "lambda a, *a: 1", LexicalErrorType::DuplicateArgumentError("a".to_string().into_boxed_str()),
|
||||
test_duplicates_l5: "lambda a, *, **a: 1", LexicalErrorType::DuplicateArgumentError("a".to_string().into_boxed_str()),
|
||||
test_duplicates_l5: "lambda a, *, b, **a: 1", LexicalErrorType::DuplicateArgumentError("a".to_string().into_boxed_str()),
|
||||
test_default_arg_error_f: "def f(a, b=20, c): pass", LexicalErrorType::DefaultArgumentError,
|
||||
test_default_arg_error_l: "lambda a, b=20, c: 1", LexicalErrorType::DefaultArgumentError,
|
||||
test_named_arguments_follow_bare_star_1: "def f(*): pass", LexicalErrorType::OtherError("named arguments must follow bare *".to_string().into_boxed_str()),
|
||||
test_named_arguments_follow_bare_star_2: "def f(*, **kwargs): pass", LexicalErrorType::OtherError("named arguments must follow bare *".to_string().into_boxed_str()),
|
||||
|
||||
// Check some calls.
|
||||
test_positional_arg_error_f: "f(b=20, c)", LexicalErrorType::PositionalArgumentError,
|
||||
|
|
|
@ -1151,24 +1151,6 @@ ParameterList<ParameterType, StarParameterType, DoubleStarParameterType>: ast::P
|
|||
range: (location..end_location).into()
|
||||
})
|
||||
},
|
||||
<location:@L> <param1:ParameterDefs<ParameterType>> <kw:("," <KwargParameter<DoubleStarParameterType>>)> ","? <end_location:@R> =>? {
|
||||
validate_pos_params(¶m1)?;
|
||||
let (posonlyargs, args) = param1;
|
||||
|
||||
// Now gather rest of parameters:
|
||||
let vararg = None;
|
||||
let kwonlyargs = vec![];
|
||||
let kwarg = kw;
|
||||
|
||||
Ok(ast::Parameters {
|
||||
posonlyargs,
|
||||
args,
|
||||
kwonlyargs,
|
||||
vararg,
|
||||
kwarg,
|
||||
range: (location..end_location).into()
|
||||
})
|
||||
},
|
||||
<location:@L> <params:ParameterListStarArgs<ParameterType, StarParameterType, DoubleStarParameterType>> ","? <end_location:@R> => {
|
||||
let (vararg, kwonlyargs, kwarg) = params;
|
||||
ast::Parameters {
|
||||
|
@ -1180,16 +1162,6 @@ ParameterList<ParameterType, StarParameterType, DoubleStarParameterType>: ast::P
|
|||
range: (location..end_location).into()
|
||||
}
|
||||
},
|
||||
<location:@L> <kwarg:KwargParameter<DoubleStarParameterType>> ","? <end_location:@R> => {
|
||||
ast::Parameters {
|
||||
posonlyargs: vec![],
|
||||
args: vec![],
|
||||
kwonlyargs: vec![],
|
||||
vararg: None,
|
||||
kwarg,
|
||||
range: (location..end_location).into()
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
// Use inline here to make sure the "," is not creating an ambiguity.
|
||||
|
@ -1219,7 +1191,11 @@ UntypedParameter: ast::ParameterWithDefault = {
|
|||
},
|
||||
};
|
||||
StarUntypedParameter: ast::Parameter = {
|
||||
<location:@L> <arg:Identifier> <end_location:@R> => ast::Parameter { name:arg, annotation: None, range: (location..end_location).into() },
|
||||
<location:@L> "*" <arg:Identifier> <end_location:@R> => ast::Parameter { name:arg, annotation: None, range: (location..end_location).into() },
|
||||
};
|
||||
|
||||
DoubleStarUntypedParameter: ast::Parameter = {
|
||||
<location:@L> "**" <arg:Identifier> <end_location:@R> => ast::Parameter { name:arg, annotation: None, range: (location..end_location).into() },
|
||||
};
|
||||
|
||||
TypedParameter: ast::ParameterWithDefault = {
|
||||
|
@ -1231,14 +1207,14 @@ TypedParameter: ast::ParameterWithDefault = {
|
|||
};
|
||||
|
||||
StarTypedParameter: ast::Parameter = {
|
||||
<location:@L> <name:Identifier> <annotation:(":" <TestOrStarExpr>)?> <end_location:@R> => {
|
||||
<location:@L> "*" <name:Identifier> <annotation:(":" <TestOrStarExpr>)?> <end_location:@R> => {
|
||||
let annotation = annotation.map(ast::Expr::from).map(Box::new);
|
||||
ast::Parameter { name, annotation, range: (location..end_location).into() }
|
||||
},
|
||||
};
|
||||
|
||||
DoubleStarTypedParameter: ast::Parameter = {
|
||||
<location:@L> <name:Identifier> <annotation:(":" <Test<"all">>)?> <end_location:@R> => {
|
||||
<location:@L> "**" <name:Identifier> <annotation:(":" <Test<"all">>)?> <end_location:@R> => {
|
||||
let annotation = annotation.map(ast::Expr::from).map(Box::new);
|
||||
ast::Parameter { name, annotation, range: (location..end_location).into() }
|
||||
},
|
||||
|
@ -1248,25 +1224,29 @@ DoubleStarTypedParameter: ast::Parameter = {
|
|||
// TODO: figure out another grammar that makes this inline no longer required.
|
||||
#[inline]
|
||||
ParameterListStarArgs<ParameterType, StarParameterType, DoubleStarParameterType>: (Option<Box<ast::Parameter>>, Vec<ast::ParameterWithDefault>, Option<Box<ast::Parameter>>) = {
|
||||
<location:@L> "*" <va:StarParameterType?> <kwonlyargs:("," <ParameterDef<ParameterType>>)*> <kwarg:("," <KwargParameter<DoubleStarParameterType>>)?> =>? {
|
||||
if va.is_none() && kwonlyargs.is_empty() && kwarg.is_none() {
|
||||
<location:@L> <va:StarParameterType> <kwonlyargs:("," <ParameterDef<ParameterType>>)*> <kwarg:("," <DoubleStarParameterType>)?> =>? {
|
||||
let kwarg = kwarg.map(Box::new);
|
||||
let va = Some(Box::new(va));
|
||||
|
||||
Ok((va, kwonlyargs, kwarg))
|
||||
},
|
||||
<location:@L> "*" <kwonlyargs:("," <ParameterDef<ParameterType>>)*> <kwarg:("," <DoubleStarParameterType>)?> =>? {
|
||||
if kwonlyargs.is_empty() {
|
||||
return Err(LexicalError::new(
|
||||
LexicalErrorType::OtherError("named arguments must follow bare *".to_string().into_boxed_str()),
|
||||
location,
|
||||
))?;
|
||||
}
|
||||
|
||||
let kwarg = kwarg.flatten();
|
||||
let va = va.map(Box::new);
|
||||
let kwarg = kwarg.map(Box::new);
|
||||
|
||||
Ok((va, kwonlyargs, kwarg))
|
||||
}
|
||||
};
|
||||
Ok((None, kwonlyargs, kwarg))
|
||||
},
|
||||
<location:@L> <kwarg:(<DoubleStarParameterType>)> =>? {
|
||||
let kwarg = Some(Box::new(kwarg));
|
||||
|
||||
KwargParameter<ParameterType>: Option<Box<ast::Parameter>> = {
|
||||
"**" <kwarg:ParameterType?> => {
|
||||
kwarg.map(Box::new)
|
||||
}
|
||||
Ok((None, vec![], kwarg))
|
||||
},
|
||||
};
|
||||
|
||||
ClassDef: ast::Stmt = {
|
||||
|
@ -1365,7 +1345,7 @@ NamedExpression: crate::parser::ParenthesizedExpr = {
|
|||
};
|
||||
|
||||
LambdaDef: crate::parser::ParenthesizedExpr = {
|
||||
<location:@L> "lambda" <location_args:@L> <parameters:ParameterList<UntypedParameter, StarUntypedParameter, StarUntypedParameter>?> <end_location_args:@R> ":" <fstring_middle:fstring_middle?> <body:Test<"all">> <end_location:@R> =>? {
|
||||
<location:@L> "lambda" <location_args:@L> <parameters:ParameterList<UntypedParameter, StarUntypedParameter, DoubleStarUntypedParameter>?> <end_location_args:@R> ":" <fstring_middle:fstring_middle?> <body:Test<"all">> <end_location:@R> =>? {
|
||||
if fstring_middle.is_some() {
|
||||
return Err(LexicalError::new(
|
||||
LexicalErrorType::FStringError(FStringErrorType::LambdaWithoutParentheses),
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,100 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/src/function.rs
|
||||
expression: parse_ast
|
||||
---
|
||||
Ok(
|
||||
[
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
range: 0..39,
|
||||
is_async: false,
|
||||
decorator_list: [],
|
||||
name: Identifier {
|
||||
id: "f",
|
||||
range: 4..5,
|
||||
},
|
||||
type_params: None,
|
||||
parameters: Parameters {
|
||||
range: 5..33,
|
||||
posonlyargs: [],
|
||||
args: [],
|
||||
vararg: None,
|
||||
kwonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 9..10,
|
||||
parameter: Parameter {
|
||||
range: 9..10,
|
||||
name: Identifier {
|
||||
id: "a",
|
||||
range: 9..10,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 12..16,
|
||||
parameter: Parameter {
|
||||
range: 12..13,
|
||||
name: Identifier {
|
||||
id: "b",
|
||||
range: 12..13,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 14..16,
|
||||
value: Int(
|
||||
20,
|
||||
),
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 18..22,
|
||||
parameter: Parameter {
|
||||
range: 18..19,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 18..19,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 20..22,
|
||||
value: Int(
|
||||
30,
|
||||
),
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
],
|
||||
kwarg: Some(
|
||||
Parameter {
|
||||
range: 24..32,
|
||||
name: Identifier {
|
||||
id: "kwargs",
|
||||
range: 26..32,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
),
|
||||
},
|
||||
returns: None,
|
||||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
range: 35..39,
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
|
@ -0,0 +1,100 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/src/function.rs
|
||||
expression: parse_ast
|
||||
---
|
||||
Ok(
|
||||
[
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
range: 0..33,
|
||||
is_async: false,
|
||||
decorator_list: [],
|
||||
name: Identifier {
|
||||
id: "f",
|
||||
range: 4..5,
|
||||
},
|
||||
type_params: None,
|
||||
parameters: Parameters {
|
||||
range: 5..27,
|
||||
posonlyargs: [],
|
||||
args: [],
|
||||
vararg: Some(
|
||||
Parameter {
|
||||
range: 6..11,
|
||||
name: Identifier {
|
||||
id: "args",
|
||||
range: 7..11,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
),
|
||||
kwonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 13..14,
|
||||
parameter: Parameter {
|
||||
range: 13..14,
|
||||
name: Identifier {
|
||||
id: "a",
|
||||
range: 13..14,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 16..20,
|
||||
parameter: Parameter {
|
||||
range: 16..17,
|
||||
name: Identifier {
|
||||
id: "b",
|
||||
range: 16..17,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 18..20,
|
||||
value: Int(
|
||||
20,
|
||||
),
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 22..26,
|
||||
parameter: Parameter {
|
||||
range: 22..23,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 22..23,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 24..26,
|
||||
value: Int(
|
||||
30,
|
||||
),
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
],
|
||||
kwarg: None,
|
||||
},
|
||||
returns: None,
|
||||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
range: 29..33,
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
|
@ -0,0 +1,109 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/src/function.rs
|
||||
expression: parse_ast
|
||||
---
|
||||
Ok(
|
||||
[
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
range: 0..43,
|
||||
is_async: false,
|
||||
decorator_list: [],
|
||||
name: Identifier {
|
||||
id: "f",
|
||||
range: 4..5,
|
||||
},
|
||||
type_params: None,
|
||||
parameters: Parameters {
|
||||
range: 5..37,
|
||||
posonlyargs: [],
|
||||
args: [],
|
||||
vararg: Some(
|
||||
Parameter {
|
||||
range: 6..11,
|
||||
name: Identifier {
|
||||
id: "args",
|
||||
range: 7..11,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
),
|
||||
kwonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 13..14,
|
||||
parameter: Parameter {
|
||||
range: 13..14,
|
||||
name: Identifier {
|
||||
id: "a",
|
||||
range: 13..14,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 16..20,
|
||||
parameter: Parameter {
|
||||
range: 16..17,
|
||||
name: Identifier {
|
||||
id: "b",
|
||||
range: 16..17,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 18..20,
|
||||
value: Int(
|
||||
20,
|
||||
),
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 22..26,
|
||||
parameter: Parameter {
|
||||
range: 22..23,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 22..23,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 24..26,
|
||||
value: Int(
|
||||
30,
|
||||
),
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
],
|
||||
kwarg: Some(
|
||||
Parameter {
|
||||
range: 28..36,
|
||||
name: Identifier {
|
||||
id: "kwargs",
|
||||
range: 30..36,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
),
|
||||
},
|
||||
returns: None,
|
||||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
range: 39..43,
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
|
@ -6,7 +6,7 @@ Ok(
|
|||
[
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
range: 0..32,
|
||||
range: 0..35,
|
||||
is_async: false,
|
||||
decorator_list: [],
|
||||
name: Identifier {
|
||||
|
@ -15,9 +15,8 @@ Ok(
|
|||
},
|
||||
type_params: None,
|
||||
parameters: Parameters {
|
||||
range: 5..26,
|
||||
posonlyargs: [],
|
||||
args: [
|
||||
range: 5..29,
|
||||
posonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 6..7,
|
||||
parameter: Parameter {
|
||||
|
@ -42,13 +41,15 @@ Ok(
|
|||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 12..13,
|
||||
range: 15..16,
|
||||
parameter: Parameter {
|
||||
range: 12..13,
|
||||
range: 15..16,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 12..13,
|
||||
range: 15..16,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
|
@ -57,24 +58,12 @@ Ok(
|
|||
],
|
||||
vararg: None,
|
||||
kwonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 18..19,
|
||||
parameter: Parameter {
|
||||
range: 18..19,
|
||||
name: Identifier {
|
||||
id: "d",
|
||||
range: 18..19,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 21..22,
|
||||
parameter: Parameter {
|
||||
range: 21..22,
|
||||
name: Identifier {
|
||||
id: "e",
|
||||
id: "d",
|
||||
range: 21..22,
|
||||
},
|
||||
annotation: None,
|
||||
|
@ -86,13 +75,25 @@ Ok(
|
|||
parameter: Parameter {
|
||||
range: 24..25,
|
||||
name: Identifier {
|
||||
id: "f",
|
||||
id: "e",
|
||||
range: 24..25,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 27..28,
|
||||
parameter: Parameter {
|
||||
range: 27..28,
|
||||
name: Identifier {
|
||||
id: "f",
|
||||
range: 27..28,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
kwarg: None,
|
||||
},
|
||||
|
@ -100,7 +101,7 @@ Ok(
|
|||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
range: 28..32,
|
||||
range: 31..35,
|
||||
},
|
||||
),
|
||||
],
|
||||
|
|
|
@ -6,7 +6,7 @@ Ok(
|
|||
[
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
range: 0..38,
|
||||
range: 0..41,
|
||||
is_async: false,
|
||||
decorator_list: [],
|
||||
name: Identifier {
|
||||
|
@ -15,9 +15,8 @@ Ok(
|
|||
},
|
||||
type_params: None,
|
||||
parameters: Parameters {
|
||||
range: 5..32,
|
||||
posonlyargs: [],
|
||||
args: [
|
||||
range: 5..35,
|
||||
posonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 6..7,
|
||||
parameter: Parameter {
|
||||
|
@ -42,13 +41,15 @@ Ok(
|
|||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 12..13,
|
||||
range: 15..16,
|
||||
parameter: Parameter {
|
||||
range: 12..13,
|
||||
range: 15..16,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 12..13,
|
||||
range: 15..16,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
|
@ -58,31 +59,31 @@ Ok(
|
|||
vararg: None,
|
||||
kwonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 18..19,
|
||||
range: 21..22,
|
||||
parameter: Parameter {
|
||||
range: 18..19,
|
||||
range: 21..22,
|
||||
name: Identifier {
|
||||
id: "d",
|
||||
range: 18..19,
|
||||
range: 21..22,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 21..25,
|
||||
range: 24..28,
|
||||
parameter: Parameter {
|
||||
range: 21..22,
|
||||
range: 24..25,
|
||||
name: Identifier {
|
||||
id: "e",
|
||||
range: 21..22,
|
||||
range: 24..25,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 23..25,
|
||||
range: 26..28,
|
||||
value: Int(
|
||||
20,
|
||||
),
|
||||
|
@ -91,19 +92,19 @@ Ok(
|
|||
),
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 27..31,
|
||||
range: 30..34,
|
||||
parameter: Parameter {
|
||||
range: 27..28,
|
||||
range: 30..31,
|
||||
name: Identifier {
|
||||
id: "f",
|
||||
range: 27..28,
|
||||
range: 30..31,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 29..31,
|
||||
range: 32..34,
|
||||
value: Int(
|
||||
30,
|
||||
),
|
||||
|
@ -118,7 +119,7 @@ Ok(
|
|||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
range: 34..38,
|
||||
range: 37..41,
|
||||
},
|
||||
),
|
||||
],
|
||||
|
|
|
@ -0,0 +1,138 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/src/function.rs
|
||||
expression: parse_ast
|
||||
---
|
||||
Ok(
|
||||
[
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
range: 0..51,
|
||||
is_async: false,
|
||||
decorator_list: [],
|
||||
name: Identifier {
|
||||
id: "f",
|
||||
range: 4..5,
|
||||
},
|
||||
type_params: None,
|
||||
parameters: Parameters {
|
||||
range: 5..45,
|
||||
posonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 6..7,
|
||||
parameter: Parameter {
|
||||
range: 6..7,
|
||||
name: Identifier {
|
||||
id: "a",
|
||||
range: 6..7,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 9..10,
|
||||
parameter: Parameter {
|
||||
range: 9..10,
|
||||
name: Identifier {
|
||||
id: "b",
|
||||
range: 9..10,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 15..16,
|
||||
parameter: Parameter {
|
||||
range: 15..16,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 15..16,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
vararg: None,
|
||||
kwonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 21..22,
|
||||
parameter: Parameter {
|
||||
range: 21..22,
|
||||
name: Identifier {
|
||||
id: "d",
|
||||
range: 21..22,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 24..28,
|
||||
parameter: Parameter {
|
||||
range: 24..25,
|
||||
name: Identifier {
|
||||
id: "e",
|
||||
range: 24..25,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 26..28,
|
||||
value: Int(
|
||||
20,
|
||||
),
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 30..34,
|
||||
parameter: Parameter {
|
||||
range: 30..31,
|
||||
name: Identifier {
|
||||
id: "f",
|
||||
range: 30..31,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 32..34,
|
||||
value: Int(
|
||||
30,
|
||||
),
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
],
|
||||
kwarg: Some(
|
||||
Parameter {
|
||||
range: 36..44,
|
||||
name: Identifier {
|
||||
id: "kwargs",
|
||||
range: 38..44,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
),
|
||||
},
|
||||
returns: None,
|
||||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
range: 47..51,
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
|
@ -6,7 +6,7 @@ Ok(
|
|||
[
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
range: 0..42,
|
||||
range: 0..45,
|
||||
is_async: false,
|
||||
decorator_list: [],
|
||||
name: Identifier {
|
||||
|
@ -15,9 +15,8 @@ Ok(
|
|||
},
|
||||
type_params: None,
|
||||
parameters: Parameters {
|
||||
range: 5..36,
|
||||
posonlyargs: [],
|
||||
args: [
|
||||
range: 5..39,
|
||||
posonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 6..7,
|
||||
parameter: Parameter {
|
||||
|
@ -42,13 +41,15 @@ Ok(
|
|||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 12..13,
|
||||
range: 15..16,
|
||||
parameter: Parameter {
|
||||
range: 12..13,
|
||||
range: 15..16,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 12..13,
|
||||
range: 15..16,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
|
@ -57,41 +58,41 @@ Ok(
|
|||
],
|
||||
vararg: Some(
|
||||
Parameter {
|
||||
range: 16..20,
|
||||
range: 18..23,
|
||||
name: Identifier {
|
||||
id: "args",
|
||||
range: 16..20,
|
||||
range: 19..23,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
),
|
||||
kwonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 22..23,
|
||||
range: 25..26,
|
||||
parameter: Parameter {
|
||||
range: 22..23,
|
||||
range: 25..26,
|
||||
name: Identifier {
|
||||
id: "d",
|
||||
range: 22..23,
|
||||
range: 25..26,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 25..29,
|
||||
range: 28..32,
|
||||
parameter: Parameter {
|
||||
range: 25..26,
|
||||
range: 28..29,
|
||||
name: Identifier {
|
||||
id: "e",
|
||||
range: 25..26,
|
||||
range: 28..29,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 27..29,
|
||||
range: 30..32,
|
||||
value: Int(
|
||||
20,
|
||||
),
|
||||
|
@ -100,19 +101,19 @@ Ok(
|
|||
),
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 31..35,
|
||||
range: 34..38,
|
||||
parameter: Parameter {
|
||||
range: 31..32,
|
||||
range: 34..35,
|
||||
name: Identifier {
|
||||
id: "f",
|
||||
range: 31..32,
|
||||
range: 34..35,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 33..35,
|
||||
range: 36..38,
|
||||
value: Int(
|
||||
30,
|
||||
),
|
||||
|
@ -127,7 +128,7 @@ Ok(
|
|||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
range: 38..42,
|
||||
range: 41..45,
|
||||
},
|
||||
),
|
||||
],
|
||||
|
|
|
@ -6,7 +6,7 @@ Ok(
|
|||
[
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
range: 0..52,
|
||||
range: 0..55,
|
||||
is_async: false,
|
||||
decorator_list: [],
|
||||
name: Identifier {
|
||||
|
@ -15,9 +15,8 @@ Ok(
|
|||
},
|
||||
type_params: None,
|
||||
parameters: Parameters {
|
||||
range: 5..46,
|
||||
posonlyargs: [],
|
||||
args: [
|
||||
range: 5..49,
|
||||
posonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 6..7,
|
||||
parameter: Parameter {
|
||||
|
@ -42,13 +41,15 @@ Ok(
|
|||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 12..13,
|
||||
range: 15..16,
|
||||
parameter: Parameter {
|
||||
range: 12..13,
|
||||
range: 15..16,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 12..13,
|
||||
range: 15..16,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
|
@ -57,41 +58,41 @@ Ok(
|
|||
],
|
||||
vararg: Some(
|
||||
Parameter {
|
||||
range: 16..20,
|
||||
range: 18..23,
|
||||
name: Identifier {
|
||||
id: "args",
|
||||
range: 16..20,
|
||||
range: 19..23,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
),
|
||||
kwonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 22..23,
|
||||
range: 25..26,
|
||||
parameter: Parameter {
|
||||
range: 22..23,
|
||||
range: 25..26,
|
||||
name: Identifier {
|
||||
id: "d",
|
||||
range: 22..23,
|
||||
range: 25..26,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 25..29,
|
||||
range: 28..32,
|
||||
parameter: Parameter {
|
||||
range: 25..26,
|
||||
range: 28..29,
|
||||
name: Identifier {
|
||||
id: "e",
|
||||
range: 25..26,
|
||||
range: 28..29,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 27..29,
|
||||
range: 30..32,
|
||||
value: Int(
|
||||
20,
|
||||
),
|
||||
|
@ -100,19 +101,19 @@ Ok(
|
|||
),
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 31..35,
|
||||
range: 34..38,
|
||||
parameter: Parameter {
|
||||
range: 31..32,
|
||||
range: 34..35,
|
||||
name: Identifier {
|
||||
id: "f",
|
||||
range: 31..32,
|
||||
range: 34..35,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 33..35,
|
||||
range: 36..38,
|
||||
value: Int(
|
||||
30,
|
||||
),
|
||||
|
@ -123,10 +124,10 @@ Ok(
|
|||
],
|
||||
kwarg: Some(
|
||||
Parameter {
|
||||
range: 39..45,
|
||||
range: 40..48,
|
||||
name: Identifier {
|
||||
id: "kwargs",
|
||||
range: 39..45,
|
||||
range: 42..48,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
|
@ -136,7 +137,7 @@ Ok(
|
|||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
range: 48..52,
|
||||
range: 51..55,
|
||||
},
|
||||
),
|
||||
],
|
||||
|
|
|
@ -6,7 +6,7 @@ Ok(
|
|||
[
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
range: 0..26,
|
||||
range: 0..29,
|
||||
is_async: false,
|
||||
decorator_list: [],
|
||||
name: Identifier {
|
||||
|
@ -15,9 +15,8 @@ Ok(
|
|||
},
|
||||
type_params: None,
|
||||
parameters: Parameters {
|
||||
range: 5..20,
|
||||
posonlyargs: [],
|
||||
args: [
|
||||
range: 5..23,
|
||||
posonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 6..7,
|
||||
parameter: Parameter {
|
||||
|
@ -51,20 +50,22 @@ Ok(
|
|||
),
|
||||
),
|
||||
},
|
||||
],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 15..19,
|
||||
range: 18..22,
|
||||
parameter: Parameter {
|
||||
range: 15..16,
|
||||
range: 18..19,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 15..16,
|
||||
range: 18..19,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 17..19,
|
||||
range: 20..22,
|
||||
value: Int(
|
||||
30,
|
||||
),
|
||||
|
@ -81,7 +82,7 @@ Ok(
|
|||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
range: 22..26,
|
||||
range: 25..29,
|
||||
},
|
||||
),
|
||||
],
|
||||
|
|
|
@ -0,0 +1,110 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/src/function.rs
|
||||
expression: parse_ast
|
||||
---
|
||||
Ok(
|
||||
[
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
range: 0..46,
|
||||
is_async: false,
|
||||
decorator_list: [],
|
||||
name: Identifier {
|
||||
id: "f",
|
||||
range: 4..5,
|
||||
},
|
||||
type_params: None,
|
||||
parameters: Parameters {
|
||||
range: 5..40,
|
||||
posonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 6..7,
|
||||
parameter: Parameter {
|
||||
range: 6..7,
|
||||
name: Identifier {
|
||||
id: "a",
|
||||
range: 6..7,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 9..13,
|
||||
parameter: Parameter {
|
||||
range: 9..10,
|
||||
name: Identifier {
|
||||
id: "b",
|
||||
range: 9..10,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 11..13,
|
||||
value: Int(
|
||||
20,
|
||||
),
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 18..22,
|
||||
parameter: Parameter {
|
||||
range: 18..19,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 18..19,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 20..22,
|
||||
value: Int(
|
||||
30,
|
||||
),
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
],
|
||||
vararg: Some(
|
||||
Parameter {
|
||||
range: 24..29,
|
||||
name: Identifier {
|
||||
id: "args",
|
||||
range: 25..29,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
),
|
||||
kwonlyargs: [],
|
||||
kwarg: Some(
|
||||
Parameter {
|
||||
range: 31..39,
|
||||
name: Identifier {
|
||||
id: "kwargs",
|
||||
range: 33..39,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
),
|
||||
},
|
||||
returns: None,
|
||||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
range: 42..46,
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
|
@ -0,0 +1,74 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/src/function.rs
|
||||
expression: parse_ast
|
||||
---
|
||||
Ok(
|
||||
[
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
range: 0..23,
|
||||
is_async: false,
|
||||
decorator_list: [],
|
||||
name: Identifier {
|
||||
id: "f",
|
||||
range: 4..5,
|
||||
},
|
||||
type_params: None,
|
||||
parameters: Parameters {
|
||||
range: 5..17,
|
||||
posonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 6..7,
|
||||
parameter: Parameter {
|
||||
range: 6..7,
|
||||
name: Identifier {
|
||||
id: "a",
|
||||
range: 6..7,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 12..13,
|
||||
parameter: Parameter {
|
||||
range: 12..13,
|
||||
name: Identifier {
|
||||
id: "b",
|
||||
range: 12..13,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 15..16,
|
||||
parameter: Parameter {
|
||||
range: 15..16,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 15..16,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
vararg: None,
|
||||
kwonlyargs: [],
|
||||
kwarg: None,
|
||||
},
|
||||
returns: None,
|
||||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
range: 19..23,
|
||||
},
|
||||
),
|
||||
],
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
|
@ -6,15 +6,14 @@ Ok(
|
|||
[
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 0..26,
|
||||
range: 0..29,
|
||||
value: Lambda(
|
||||
ExprLambda {
|
||||
range: 0..26,
|
||||
range: 0..29,
|
||||
parameters: Some(
|
||||
Parameters {
|
||||
range: 7..23,
|
||||
posonlyargs: [],
|
||||
args: [
|
||||
range: 7..26,
|
||||
posonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 7..8,
|
||||
parameter: Parameter {
|
||||
|
@ -39,13 +38,15 @@ Ok(
|
|||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 13..14,
|
||||
range: 16..17,
|
||||
parameter: Parameter {
|
||||
range: 13..14,
|
||||
range: 16..17,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 13..14,
|
||||
range: 16..17,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
|
@ -55,24 +56,24 @@ Ok(
|
|||
vararg: None,
|
||||
kwonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 19..20,
|
||||
range: 22..23,
|
||||
parameter: Parameter {
|
||||
range: 19..20,
|
||||
range: 22..23,
|
||||
name: Identifier {
|
||||
id: "d",
|
||||
range: 19..20,
|
||||
range: 22..23,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 22..23,
|
||||
range: 25..26,
|
||||
parameter: Parameter {
|
||||
range: 22..23,
|
||||
range: 25..26,
|
||||
name: Identifier {
|
||||
id: "e",
|
||||
range: 22..23,
|
||||
range: 25..26,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
|
@ -84,7 +85,7 @@ Ok(
|
|||
),
|
||||
body: NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 25..26,
|
||||
range: 28..29,
|
||||
value: Int(
|
||||
0,
|
||||
),
|
||||
|
|
|
@ -0,0 +1,105 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/src/function.rs
|
||||
expression: parse_ast
|
||||
---
|
||||
Ok(
|
||||
[
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 0..32,
|
||||
value: Lambda(
|
||||
ExprLambda {
|
||||
range: 0..32,
|
||||
parameters: Some(
|
||||
Parameters {
|
||||
range: 7..29,
|
||||
posonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 7..8,
|
||||
parameter: Parameter {
|
||||
range: 7..8,
|
||||
name: Identifier {
|
||||
id: "a",
|
||||
range: 7..8,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 10..11,
|
||||
parameter: Parameter {
|
||||
range: 10..11,
|
||||
name: Identifier {
|
||||
id: "b",
|
||||
range: 10..11,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 16..17,
|
||||
parameter: Parameter {
|
||||
range: 16..17,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 16..17,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
vararg: Some(
|
||||
Parameter {
|
||||
range: 19..21,
|
||||
name: Identifier {
|
||||
id: "d",
|
||||
range: 20..21,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
),
|
||||
kwonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 23..24,
|
||||
parameter: Parameter {
|
||||
range: 23..24,
|
||||
name: Identifier {
|
||||
id: "e",
|
||||
range: 23..24,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
kwarg: Some(
|
||||
Parameter {
|
||||
range: 26..29,
|
||||
name: Identifier {
|
||||
id: "f",
|
||||
range: 28..29,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
body: NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 31..32,
|
||||
value: Int(
|
||||
0,
|
||||
),
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
|
@ -6,15 +6,14 @@ Ok(
|
|||
[
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 0..23,
|
||||
range: 0..26,
|
||||
value: Lambda(
|
||||
ExprLambda {
|
||||
range: 0..23,
|
||||
range: 0..26,
|
||||
parameters: Some(
|
||||
Parameters {
|
||||
range: 7..20,
|
||||
posonlyargs: [],
|
||||
args: [
|
||||
range: 7..23,
|
||||
posonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 7..8,
|
||||
parameter: Parameter {
|
||||
|
@ -48,20 +47,22 @@ Ok(
|
|||
),
|
||||
),
|
||||
},
|
||||
],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 16..20,
|
||||
range: 19..23,
|
||||
parameter: Parameter {
|
||||
range: 16..17,
|
||||
range: 19..20,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 16..17,
|
||||
range: 19..20,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: Some(
|
||||
NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 18..20,
|
||||
range: 21..23,
|
||||
value: Int(
|
||||
30,
|
||||
),
|
||||
|
@ -77,7 +78,7 @@ Ok(
|
|||
),
|
||||
body: NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 22..23,
|
||||
range: 25..26,
|
||||
value: Int(
|
||||
1,
|
||||
),
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
---
|
||||
source: crates/ruff_python_parser/src/function.rs
|
||||
expression: parse_ast
|
||||
---
|
||||
Ok(
|
||||
[
|
||||
Expr(
|
||||
StmtExpr {
|
||||
range: 0..20,
|
||||
value: Lambda(
|
||||
ExprLambda {
|
||||
range: 0..20,
|
||||
parameters: Some(
|
||||
Parameters {
|
||||
range: 7..17,
|
||||
posonlyargs: [
|
||||
ParameterWithDefault {
|
||||
range: 7..8,
|
||||
parameter: Parameter {
|
||||
range: 7..8,
|
||||
name: Identifier {
|
||||
id: "a",
|
||||
range: 7..8,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
ParameterWithDefault {
|
||||
range: 10..11,
|
||||
parameter: Parameter {
|
||||
range: 10..11,
|
||||
name: Identifier {
|
||||
id: "b",
|
||||
range: 10..11,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
args: [
|
||||
ParameterWithDefault {
|
||||
range: 16..17,
|
||||
parameter: Parameter {
|
||||
range: 16..17,
|
||||
name: Identifier {
|
||||
id: "c",
|
||||
range: 16..17,
|
||||
},
|
||||
annotation: None,
|
||||
},
|
||||
default: None,
|
||||
},
|
||||
],
|
||||
vararg: None,
|
||||
kwonlyargs: [],
|
||||
kwarg: None,
|
||||
},
|
||||
),
|
||||
body: NumberLiteral(
|
||||
ExprNumberLiteral {
|
||||
range: 19..20,
|
||||
value: Int(
|
||||
1,
|
||||
),
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
|
@ -346,7 +346,7 @@ expression: parse_suite(source).unwrap()
|
|||
args: [],
|
||||
vararg: Some(
|
||||
Parameter {
|
||||
range: 155..161,
|
||||
range: 154..161,
|
||||
name: Identifier {
|
||||
id: "a",
|
||||
range: 155..156,
|
||||
|
@ -417,7 +417,7 @@ expression: parse_suite(source).unwrap()
|
|||
args: [],
|
||||
vararg: Some(
|
||||
Parameter {
|
||||
range: 188..200,
|
||||
range: 187..200,
|
||||
name: Identifier {
|
||||
id: "args",
|
||||
range: 188..192,
|
||||
|
@ -446,7 +446,7 @@ expression: parse_suite(source).unwrap()
|
|||
kwonlyargs: [],
|
||||
kwarg: Some(
|
||||
Parameter {
|
||||
range: 204..220,
|
||||
range: 202..220,
|
||||
name: Identifier {
|
||||
id: "kwargs",
|
||||
range: 204..210,
|
||||
|
|
|
@ -19,7 +19,7 @@ expression: parse_ast
|
|||
args: [],
|
||||
vararg: Some(
|
||||
Parameter {
|
||||
range: 20..29,
|
||||
range: 19..29,
|
||||
name: Identifier {
|
||||
id: "args",
|
||||
range: 20..24,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue