Skip to content

Commit 28aacaf

Browse files
committed
Fix argument postprocessing (foo(bar=baz, *qux) is valid).
1 parent 33ab6f9 commit 28aacaf

File tree

5 files changed

+177
-335
lines changed

5 files changed

+177
-335
lines changed

src/ast.rs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -82,18 +82,15 @@ pub struct UntypedArgsList {
8282
#[derive(Clone, Debug, PartialEq)]
8383
pub struct Decorator {
8484
pub name: Vec<Name>,
85-
pub args: Option<Arglist>,
85+
pub args: Option<Vec<Argument>>,
8686
}
8787

8888
#[derive(Clone, Debug, PartialEq)]
89-
pub enum Argument<T> {
90-
Normal(T),
91-
Star(Expression),
92-
}
93-
#[derive(Clone, Debug, PartialEq, Default)]
94-
pub struct Arglist {
95-
pub positional_args: Vec<Argument<Expression>>,
96-
pub keyword_args: Vec<Argument<(Name, Expression)>>,
89+
pub enum Argument {
90+
Positional(Expression),
91+
Starargs(Expression),
92+
Keyword(Name, Expression),
93+
Kwargs(Expression),
9794
}
9895

9996
#[derive(Clone, Debug, PartialEq)]
@@ -234,7 +231,7 @@ pub enum Expression {
234231
ListComp(Box<SetItem>, Vec<ComprehensionChunk>),
235232
Generator(Box<SetItem>, Vec<ComprehensionChunk>),
236233

237-
Call(Box<Expression>, Arglist),
234+
Call(Box<Expression>, Vec<Argument>),
238235
Subscript(Box<Expression>, Vec<Subscript>),
239236
/// `foo.bar`
240237
Attribute(Box<Expression>, Name),
@@ -352,7 +349,7 @@ pub struct Funcdef {
352349
pub struct Classdef {
353350
pub decorators: Vec<Decorator>,
354351
pub name: String,
355-
pub arguments: Arglist,
352+
pub arguments: Vec<Argument>,
356353
pub code: Vec<Statement>,
357354
}
358355

0 commit comments

Comments
 (0)