Skip validate_arguments when empty

This commit is contained in:
Jeong YunWon 2023-05-18 20:09:57 +09:00
parent 531e41ae2c
commit 6a85b99240
2 changed files with 21 additions and 25 deletions

View file

@ -956,18 +956,16 @@ FuncDef: ast::Stmt = {
Parameters: ast::Arguments = { Parameters: ast::Arguments = {
<location:@L> "(" <a: (ParameterList<TypedParameter, StarTypedParameter>)?> ")" <end_location:@R> =>? { <location:@L> "(" <a: (ParameterList<TypedParameter, StarTypedParameter>)?> ")" <end_location:@R> =>? {
let args = validate_arguments( let args = a.map(validate_arguments).transpose()?.unwrap_or_else(|| ast::Arguments {
a.unwrap_or_else(|| ast::Arguments { posonlyargs: vec![],
posonlyargs: vec![], args: vec![],
args: vec![], vararg: None,
vararg: None, kwonlyargs: vec![],
kwonlyargs: vec![], kw_defaults: vec![],
kw_defaults: vec![], kwarg: None,
kwarg: None, defaults: vec![],
defaults: vec![], range: optional_range(location, end_location)
range: optional_range(location, end_location) });
})
)?;
Ok(args) Ok(args)
} }

24
parser/src/python.rs generated
View file

@ -1,5 +1,5 @@
// auto-generated: "lalrpop 0.20.0" // auto-generated: "lalrpop 0.20.0"
// sha3: 47b783562ed1a6b737bc43a6a32667a7c2d2a8d317902061795979684331efe1 // sha3: 9e916a859a8029803a1b64fb6ea9d62f79fbdf896a3673c49e79bd5e8068f2f5
use crate::{ use crate::{
ast::{self as ast, Ranged}, ast::{self as ast, Ranged},
lexer::{LexicalError, LexicalErrorType}, lexer::{LexicalError, LexicalErrorType},
@ -30732,18 +30732,16 @@ fn __action156<
) -> Result<ast::Arguments,__lalrpop_util::ParseError<TextSize,token::Tok,LexicalError>> ) -> Result<ast::Arguments,__lalrpop_util::ParseError<TextSize,token::Tok,LexicalError>>
{ {
{ {
let args = validate_arguments( let args = a.map(validate_arguments).transpose()?.unwrap_or_else(|| ast::Arguments {
a.unwrap_or_else(|| ast::Arguments { posonlyargs: vec![],
posonlyargs: vec![], args: vec![],
args: vec![], vararg: None,
vararg: None, kwonlyargs: vec![],
kwonlyargs: vec![], kw_defaults: vec![],
kw_defaults: vec![], kwarg: None,
kwarg: None, defaults: vec![],
defaults: vec![], range: optional_range(location, end_location)
range: optional_range(location, end_location) });
})
)?;
Ok(args) Ok(args)
} }