---
source: crates/ruff_python_parser/tests/fixtures.rs
input_file: crates/ruff_python_parser/resources/inline/err/type_param_type_var_missing_default.py
---
## AST

```
Module(
    ModModule {
        node_index: AtomicNodeIndex(..),
        range: 0..64,
        body: [
            TypeAlias(
                StmtTypeAlias {
                    node_index: AtomicNodeIndex(..),
                    range: 0..17,
                    name: Name(
                        ExprName {
                            node_index: AtomicNodeIndex(..),
                            range: 5..6,
                            id: Name("X"),
                            ctx: Store,
                        },
                    ),
                    type_params: Some(
                        TypeParams {
                            range: 6..11,
                            node_index: AtomicNodeIndex(..),
                            type_params: [
                                TypeVar(
                                    TypeParamTypeVar {
                                        range: 7..10,
                                        node_index: AtomicNodeIndex(..),
                                        name: Identifier {
                                            id: Name("T"),
                                            range: 7..8,
                                            node_index: AtomicNodeIndex(..),
                                        },
                                        bound: None,
                                        default: None,
                                    },
                                ),
                            ],
                        },
                    ),
                    value: Name(
                        ExprName {
                            node_index: AtomicNodeIndex(..),
                            range: 14..17,
                            id: Name("int"),
                            ctx: Load,
                        },
                    ),
                },
            ),
            TypeAlias(
                StmtTypeAlias {
                    node_index: AtomicNodeIndex(..),
                    range: 18..40,
                    name: Name(
                        ExprName {
                            node_index: AtomicNodeIndex(..),
                            range: 23..24,
                            id: Name("X"),
                            ctx: Store,
                        },
                    ),
                    type_params: Some(
                        TypeParams {
                            range: 24..34,
                            node_index: AtomicNodeIndex(..),
                            type_params: [
                                TypeVar(
                                    TypeParamTypeVar {
                                        range: 25..33,
                                        node_index: AtomicNodeIndex(..),
                                        name: Identifier {
                                            id: Name("T"),
                                            range: 25..26,
                                            node_index: AtomicNodeIndex(..),
                                        },
                                        bound: Some(
                                            Name(
                                                ExprName {
                                                    node_index: AtomicNodeIndex(..),
                                                    range: 28..31,
                                                    id: Name("int"),
                                                    ctx: Load,
                                                },
                                            ),
                                        ),
                                        default: None,
                                    },
                                ),
                            ],
                        },
                    ),
                    value: Name(
                        ExprName {
                            node_index: AtomicNodeIndex(..),
                            range: 37..40,
                            id: Name("int"),
                            ctx: Load,
                        },
                    ),
                },
            ),
            TypeAlias(
                StmtTypeAlias {
                    node_index: AtomicNodeIndex(..),
                    range: 41..63,
                    name: Name(
                        ExprName {
                            node_index: AtomicNodeIndex(..),
                            range: 46..47,
                            id: Name("X"),
                            ctx: Store,
                        },
                    ),
                    type_params: Some(
                        TypeParams {
                            range: 47..57,
                            node_index: AtomicNodeIndex(..),
                            type_params: [
                                TypeVar(
                                    TypeParamTypeVar {
                                        range: 48..52,
                                        node_index: AtomicNodeIndex(..),
                                        name: Identifier {
                                            id: Name("T1"),
                                            range: 48..50,
                                            node_index: AtomicNodeIndex(..),
                                        },
                                        bound: None,
                                        default: None,
                                    },
                                ),
                                TypeVar(
                                    TypeParamTypeVar {
                                        range: 54..56,
                                        node_index: AtomicNodeIndex(..),
                                        name: Identifier {
                                            id: Name("T2"),
                                            range: 54..56,
                                            node_index: AtomicNodeIndex(..),
                                        },
                                        bound: None,
                                        default: None,
                                    },
                                ),
                            ],
                        },
                    ),
                    value: Name(
                        ExprName {
                            node_index: AtomicNodeIndex(..),
                            range: 60..63,
                            id: Name("int"),
                            ctx: Load,
                        },
                    ),
                },
            ),
        ],
    },
)
```
## Errors

  |
1 | type X[T =] = int
  |           ^ Syntax Error: Expected an expression
2 | type X[T: int =] = int
3 | type X[T1 =, T2] = int
  |


  |
1 | type X[T =] = int
2 | type X[T: int =] = int
  |                ^ Syntax Error: Expected an expression
3 | type X[T1 =, T2] = int
  |


  |
1 | type X[T =] = int
2 | type X[T: int =] = int
3 | type X[T1 =, T2] = int
  |            ^ Syntax Error: Expected an expression
  |
