mirror of
https://github.com/astral-sh/ruff
synced 2026-01-07 14:44:17 -05:00
Include argument parentheses in range (#5)
This commit is contained in:
committed by
Charlie Marsh
parent
5054cbe84f
commit
8a415fa61e
@@ -136,7 +136,6 @@ mod tests {
|
||||
use super::*;
|
||||
use crate::{ast, parser::ParseErrorType, Parse};
|
||||
|
||||
#[cfg(feature = "all-nodes-with-ranges")]
|
||||
macro_rules! function_and_lambda {
|
||||
($($name:ident: $code:expr,)*) => {
|
||||
$(
|
||||
@@ -149,6 +148,12 @@ mod tests {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "all-nodes-with-ranges")]
|
||||
function_and_lambda! {
|
||||
test_function_no_args_with_ranges: "def f(): pass",
|
||||
test_function_pos_args_with_ranges: "def f(a, b, c): pass",
|
||||
}
|
||||
|
||||
#[cfg(feature = "all-nodes-with-ranges")]
|
||||
function_and_lambda! {
|
||||
test_function_no_args: "def f(): pass",
|
||||
|
||||
@@ -1109,7 +1109,7 @@ def args_to_tuple(*args: *Ts) -> Tuple[*Ts]: ...
|
||||
@my_decorator
|
||||
def test():
|
||||
pass
|
||||
|
||||
|
||||
@class_decorator
|
||||
class Abcd:
|
||||
pass
|
||||
|
||||
@@ -981,8 +981,14 @@ FuncDef: ast::Stmt = {
|
||||
Parameters: ast::Arguments = {
|
||||
<location:@L> "(" <a: (ParameterList<TypedParameter, StarTypedParameter, DoubleStarTypedParameter>)?> ")" <end_location:@R> =>? {
|
||||
a.as_ref().map(validate_arguments).transpose()?;
|
||||
|
||||
let range = optional_range(location, end_location);
|
||||
let args = a
|
||||
.unwrap_or_else(|| ast::Arguments::empty(optional_range(location, end_location)));
|
||||
.map(|mut arguments| {
|
||||
arguments.range = range;
|
||||
arguments
|
||||
})
|
||||
.unwrap_or_else(|| ast::Arguments::empty(range));
|
||||
|
||||
Ok(args)
|
||||
}
|
||||
|
||||
10
parser/src/python.rs
generated
10
parser/src/python.rs
generated
@@ -1,5 +1,5 @@
|
||||
// auto-generated: "lalrpop 0.19.8"
|
||||
// sha3: 82bdc299d8185d1aa4a2c969643cfcf7097ba66bb460cb6ae85023c1f358e750
|
||||
// sha3: 78e4fe2d25728ae4a1a411a48ffdc7845d05f16bacd09d23349a56b99a3eeaf4
|
||||
use crate::{
|
||||
ast::{self as ast, Ranged, bigint::BigInt},
|
||||
lexer::{LexicalError, LexicalErrorType},
|
||||
@@ -25564,8 +25564,14 @@ fn __action158<
|
||||
{
|
||||
{
|
||||
a.as_ref().map(validate_arguments).transpose()?;
|
||||
|
||||
let range = optional_range(location, end_location);
|
||||
let args = a
|
||||
.unwrap_or_else(|| ast::Arguments::empty(optional_range(location, end_location)));
|
||||
.map(|mut arguments| {
|
||||
arguments.range = range;
|
||||
arguments
|
||||
})
|
||||
.unwrap_or_else(|| ast::Arguments::empty(range));
|
||||
|
||||
Ok(args)
|
||||
}
|
||||
|
||||
36
parser/src/snapshots/rustpython_parser__function__tests__function_no_args_with_ranges.snap
generated
Normal file
36
parser/src/snapshots/rustpython_parser__function__tests__function_no_args_with_ranges.snap
generated
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
source: parser/src/function.rs
|
||||
expression: parse_ast
|
||||
---
|
||||
Ok(
|
||||
[
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
range: 0..13,
|
||||
name: Identifier(
|
||||
"f",
|
||||
),
|
||||
args: Arguments {
|
||||
range: 5..7,
|
||||
posonlyargs: [],
|
||||
args: [],
|
||||
vararg: None,
|
||||
kwonlyargs: [],
|
||||
kw_defaults: [],
|
||||
kwarg: None,
|
||||
defaults: [],
|
||||
},
|
||||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
range: 9..13,
|
||||
},
|
||||
),
|
||||
],
|
||||
decorator_list: [],
|
||||
returns: None,
|
||||
type_comment: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
||||
61
parser/src/snapshots/rustpython_parser__function__tests__function_pos_args_with_ranges.snap
generated
Normal file
61
parser/src/snapshots/rustpython_parser__function__tests__function_pos_args_with_ranges.snap
generated
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
source: parser/src/function.rs
|
||||
expression: parse_ast
|
||||
---
|
||||
Ok(
|
||||
[
|
||||
FunctionDef(
|
||||
StmtFunctionDef {
|
||||
range: 0..20,
|
||||
name: Identifier(
|
||||
"f",
|
||||
),
|
||||
args: Arguments {
|
||||
range: 5..14,
|
||||
posonlyargs: [],
|
||||
args: [
|
||||
Arg {
|
||||
range: 6..7,
|
||||
arg: Identifier(
|
||||
"a",
|
||||
),
|
||||
annotation: None,
|
||||
type_comment: None,
|
||||
},
|
||||
Arg {
|
||||
range: 9..10,
|
||||
arg: Identifier(
|
||||
"b",
|
||||
),
|
||||
annotation: None,
|
||||
type_comment: None,
|
||||
},
|
||||
Arg {
|
||||
range: 12..13,
|
||||
arg: Identifier(
|
||||
"c",
|
||||
),
|
||||
annotation: None,
|
||||
type_comment: None,
|
||||
},
|
||||
],
|
||||
vararg: None,
|
||||
kwonlyargs: [],
|
||||
kw_defaults: [],
|
||||
kwarg: None,
|
||||
defaults: [],
|
||||
},
|
||||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
range: 16..20,
|
||||
},
|
||||
),
|
||||
],
|
||||
decorator_list: [],
|
||||
returns: None,
|
||||
type_comment: None,
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
||||
@@ -41,7 +41,7 @@ expression: parse_ast
|
||||
),
|
||||
ClassDef(
|
||||
StmtClassDef {
|
||||
range: 40..77,
|
||||
range: 36..73,
|
||||
name: Identifier(
|
||||
"Abcd",
|
||||
),
|
||||
@@ -50,14 +50,14 @@ expression: parse_ast
|
||||
body: [
|
||||
Pass(
|
||||
StmtPass {
|
||||
range: 73..77,
|
||||
range: 69..73,
|
||||
},
|
||||
),
|
||||
],
|
||||
decorator_list: [
|
||||
Name(
|
||||
ExprName {
|
||||
range: 41..56,
|
||||
range: 37..52,
|
||||
id: Identifier(
|
||||
"class_decorator",
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user