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/inline/err/ann_assign_stmt_invalid_value.py
---
## AST

```
Module(
    ModModule {
        node_index: NodeIndex(None),
        range: 0..65,
        body: [
            AnnAssign(
                StmtAnnAssign {
                    node_index: NodeIndex(None),
                    range: 0..17,
                    target: Name(
                        ExprName {
                            node_index: NodeIndex(None),
                            range: 0..1,
                            id: Name("x"),
                            ctx: Store,
                        },
                    ),
                    annotation: Name(
                        ExprName {
                            node_index: NodeIndex(None),
                            range: 3..6,
                            id: Name("Any"),
                            ctx: Load,
                        },
                    ),
                    value: Some(
                        Starred(
                            ExprStarred {
                                node_index: NodeIndex(None),
                                range: 9..17,
                                value: BoolOp(
                                    ExprBoolOp {
                                        node_index: NodeIndex(None),
                                        range: 10..17,
                                        op: And,
                                        values: [
                                            Name(
                                                ExprName {
                                                    node_index: NodeIndex(None),
                                                    range: 10..11,
                                                    id: Name("a"),
                                                    ctx: Load,
                                                },
                                            ),
                                            Name(
                                                ExprName {
                                                    node_index: NodeIndex(None),
                                                    range: 16..17,
                                                    id: Name("b"),
                                                    ctx: Load,
                                                },
                                            ),
                                        ],
                                    },
                                ),
                                ctx: Load,
                            },
                        ),
                    ),
                    simple: true,
                },
            ),
            AnnAssign(
                StmtAnnAssign {
                    node_index: NodeIndex(None),
                    range: 18..28,
                    target: Name(
                        ExprName {
                            node_index: NodeIndex(None),
                            range: 18..19,
                            id: Name("x"),
                            ctx: Store,
                        },
                    ),
                    annotation: Name(
                        ExprName {
                            node_index: NodeIndex(None),
                            range: 21..24,
                            id: Name("Any"),
                            ctx: Load,
                        },
                    ),
                    value: Some(
                        Name(
                            ExprName {
                                node_index: NodeIndex(None),
                                range: 27..28,
                                id: Name("x"),
                                ctx: Load,
                            },
                        ),
                    ),
                    simple: true,
                },
            ),
            Expr(
                StmtExpr {
                    node_index: NodeIndex(None),
                    range: 32..33,
                    value: NumberLiteral(
                        ExprNumberLiteral {
                            node_index: NodeIndex(None),
                            range: 32..33,
                            value: Int(
                                1,
                            ),
                        },
                    ),
                },
            ),
            AnnAssign(
                StmtAnnAssign {
                    node_index: NodeIndex(None),
                    range: 34..64,
                    target: Name(
                        ExprName {
                            node_index: NodeIndex(None),
                            range: 34..35,
                            id: Name("x"),
                            ctx: Store,
                        },
                    ),
                    annotation: Name(
                        ExprName {
                            node_index: NodeIndex(None),
                            range: 37..41,
                            id: Name("list"),
                            ctx: Load,
                        },
                    ),
                    value: Some(
                        List(
                            ExprList {
                                node_index: NodeIndex(None),
                                range: 44..64,
                                elts: [
                                    Name(
                                        ExprName {
                                            node_index: NodeIndex(None),
                                            range: 45..46,
                                            id: Name("x"),
                                            ctx: Load,
                                        },
                                    ),
                                    Starred(
                                        ExprStarred {
                                            node_index: NodeIndex(None),
                                            range: 48..54,
                                            value: BinOp(
                                                ExprBinOp {
                                                    node_index: NodeIndex(None),
                                                    range: 49..54,
                                                    left: Name(
                                                        ExprName {
                                                            node_index: NodeIndex(None),
                                                            range: 49..50,
                                                            id: Name("a"),
                                                            ctx: Load,
                                                        },
                                                    ),
                                                    op: BitOr,
                                                    right: Name(
                                                        ExprName {
                                                            node_index: NodeIndex(None),
                                                            range: 53..54,
                                                            id: Name("b"),
                                                            ctx: Load,
                                                        },
                                                    ),
                                                },
                                            ),
                                            ctx: Load,
                                        },
                                    ),
                                    Starred(
                                        ExprStarred {
                                            node_index: NodeIndex(None),
                                            range: 56..63,
                                            value: BoolOp(
                                                ExprBoolOp {
                                                    node_index: NodeIndex(None),
                                                    range: 57..63,
                                                    op: Or,
                                                    values: [
                                                        Name(
                                                            ExprName {
                                                                node_index: NodeIndex(None),
                                                                range: 57..58,
                                                                id: Name("a"),
                                                                ctx: Load,
                                                            },
                                                        ),
                                                        Name(
                                                            ExprName {
                                                                node_index: NodeIndex(None),
                                                                range: 62..63,
                                                                id: Name("b"),
                                                                ctx: Load,
                                                            },
                                                        ),
                                                    ],
                                                },
                                            ),
                                            ctx: Load,
                                        },
                                    ),
                                ],
                                ctx: Load,
                            },
                        ),
                    ),
                    simple: true,
                },
            ),
        ],
    },
)
```
## Errors

  |
1 | x: Any = *a and b
  |           ^^^^^^^ Syntax Error: Boolean expression cannot be used here
2 | x: Any = x := 1
3 | x: list = [x, *a | b, *a or b]
  |


  |
1 | x: Any = *a and b
2 | x: Any = x := 1
  |            ^^ Syntax Error: Expected a statement
3 | x: list = [x, *a | b, *a or b]
  |


  |
1 | x: Any = *a and b
2 | x: Any = x := 1
3 | x: list = [x, *a | b, *a or b]
  |                        ^^^^^^ Syntax Error: Boolean expression cannot be used here
  |