rustpython-ruff_python_parser 0.15.8

Unofficial fork for RustPython
Documentation
---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/invalid/expressions/arguments/double_starred.py
---
## AST

```
Module(
    ModModule {
        node_index: NodeIndex(None),
        range: 0..55,
        body: [
            Expr(
                StmtExpr {
                    node_index: NodeIndex(None),
                    range: 0..15,
                    value: Call(
                        ExprCall {
                            node_index: NodeIndex(None),
                            range: 0..15,
                            func: Name(
                                ExprName {
                                    node_index: NodeIndex(None),
                                    range: 0..4,
                                    id: Name("call"),
                                    ctx: Load,
                                },
                            ),
                            arguments: Arguments {
                                range: 4..15,
                                node_index: NodeIndex(None),
                                args: [],
                                keywords: [
                                    Keyword {
                                        range: 5..14,
                                        node_index: NodeIndex(None),
                                        arg: None,
                                        value: Yield(
                                            ExprYield {
                                                node_index: NodeIndex(None),
                                                range: 7..14,
                                                value: Some(
                                                    Name(
                                                        ExprName {
                                                            node_index: NodeIndex(None),
                                                            range: 13..14,
                                                            id: Name("x"),
                                                            ctx: Load,
                                                        },
                                                    ),
                                                ),
                                            },
                                        ),
                                    },
                                ],
                            },
                        },
                    ),
                },
            ),
            Expr(
                StmtExpr {
                    node_index: NodeIndex(None),
                    range: 16..27,
                    value: Call(
                        ExprCall {
                            node_index: NodeIndex(None),
                            range: 16..27,
                            func: Name(
                                ExprName {
                                    node_index: NodeIndex(None),
                                    range: 16..20,
                                    id: Name("call"),
                                    ctx: Load,
                                },
                            ),
                            arguments: Arguments {
                                range: 20..27,
                                node_index: NodeIndex(None),
                                args: [],
                                keywords: [
                                    Keyword {
                                        range: 21..26,
                                        node_index: NodeIndex(None),
                                        arg: None,
                                        value: Starred(
                                            ExprStarred {
                                                node_index: NodeIndex(None),
                                                range: 24..26,
                                                value: Name(
                                                    ExprName {
                                                        node_index: NodeIndex(None),
                                                        range: 25..26,
                                                        id: Name("x"),
                                                        ctx: Load,
                                                    },
                                                ),
                                                ctx: Load,
                                            },
                                        ),
                                    },
                                ],
                            },
                        },
                    ),
                },
            ),
            Expr(
                StmtExpr {
                    node_index: NodeIndex(None),
                    range: 28..38,
                    value: Call(
                        ExprCall {
                            node_index: NodeIndex(None),
                            range: 28..38,
                            func: Name(
                                ExprName {
                                    node_index: NodeIndex(None),
                                    range: 28..32,
                                    id: Name("call"),
                                    ctx: Load,
                                },
                            ),
                            arguments: Arguments {
                                range: 32..38,
                                node_index: NodeIndex(None),
                                args: [],
                                keywords: [
                                    Keyword {
                                        range: 33..37,
                                        node_index: NodeIndex(None),
                                        arg: None,
                                        value: Starred(
                                            ExprStarred {
                                                node_index: NodeIndex(None),
                                                range: 35..37,
                                                value: Name(
                                                    ExprName {
                                                        node_index: NodeIndex(None),
                                                        range: 36..37,
                                                        id: Name("x"),
                                                        ctx: Load,
                                                    },
                                                ),
                                                ctx: Load,
                                            },
                                        ),
                                    },
                                ],
                            },
                        },
                    ),
                },
            ),
            Expr(
                StmtExpr {
                    node_index: NodeIndex(None),
                    range: 40..54,
                    value: Call(
                        ExprCall {
                            node_index: NodeIndex(None),
                            range: 40..54,
                            func: Name(
                                ExprName {
                                    node_index: NodeIndex(None),
                                    range: 40..44,
                                    id: Name("call"),
                                    ctx: Load,
                                },
                            ),
                            arguments: Arguments {
                                range: 44..54,
                                node_index: NodeIndex(None),
                                args: [
                                    NumberLiteral(
                                        ExprNumberLiteral {
                                            node_index: NodeIndex(None),
                                            range: 52..53,
                                            value: Int(
                                                1,
                                            ),
                                        },
                                    ),
                                ],
                                keywords: [
                                    Keyword {
                                        range: 45..48,
                                        node_index: NodeIndex(None),
                                        arg: None,
                                        value: Name(
                                            ExprName {
                                                node_index: NodeIndex(None),
                                                range: 47..48,
                                                id: Name("x"),
                                                ctx: Load,
                                            },
                                        ),
                                    },
                                ],
                            },
                        },
                    ),
                },
            ),
        ],
    },
)
```
## Errors

  |
1 | call(**yield x)
  |        ^^^^^^^ Syntax Error: Yield expression cannot be used here
2 | call(** *x)
3 | call(***x)
  |


  |
1 | call(**yield x)
2 | call(** *x)
  |         ^^ Syntax Error: Starred expression cannot be used here
3 | call(***x)
  |


  |
1 | call(**yield x)
2 | call(** *x)
3 | call(***x)
  |        ^^ Syntax Error: Starred expression cannot be used here
4 |
5 | call(**x := 1)
  |


  |
3 | call(***x)
4 |
5 | call(**x := 1)
  |          ^^ Syntax Error: Expected `,`, found `:=`
  |


  |
3 | call(***x)
4 |
5 | call(**x := 1)
  |             ^ Syntax Error: Positional argument cannot follow keyword argument unpacking
  |