diff --git a/parser/src/parser.rs b/parser/src/parser.rs index 386257c..adbc273 100644 --- a/parser/src/parser.rs +++ b/parser/src/parser.rs @@ -928,6 +928,12 @@ type X = \ type X = ( int ) +type \ + X[T] = T +type X \ + [T] = T +type X[T] \ + = T "#; insta::assert_debug_snapshot!(ast::Suite::parse(source, "").unwrap()); } diff --git a/parser/src/snapshots/rustpython_parser__parser__tests__parse_type_declaration.snap b/parser/src/snapshots/rustpython_parser__parser__tests__parse_type_declaration.snap index e309701..c35f46d 100644 --- a/parser/src/snapshots/rustpython_parser__parser__tests__parse_type_declaration.snap +++ b/parser/src/snapshots/rustpython_parser__parser__tests__parse_type_declaration.snap @@ -802,4 +802,106 @@ expression: "ast::Suite::parse(source, \"\").unwrap()" ), }, ), + TypeAlias( + StmtTypeAlias { + range: 510..529, + name: Name( + ExprName { + range: 521..522, + id: Identifier( + "X", + ), + ctx: Load, + }, + ), + type_params: [ + TypeVar( + TypeParamTypeVar { + range: 523..524, + name: Identifier( + "T", + ), + bound: None, + }, + ), + ], + value: Name( + ExprName { + range: 528..529, + id: Identifier( + "T", + ), + ctx: Load, + }, + ), + }, + ), + TypeAlias( + StmtTypeAlias { + range: 530..550, + name: Name( + ExprName { + range: 535..536, + id: Identifier( + "X", + ), + ctx: Load, + }, + ), + type_params: [ + TypeVar( + TypeParamTypeVar { + range: 544..545, + name: Identifier( + "T", + ), + bound: None, + }, + ), + ], + value: Name( + ExprName { + range: 549..550, + id: Identifier( + "T", + ), + ctx: Load, + }, + ), + }, + ), + TypeAlias( + StmtTypeAlias { + range: 551..570, + name: Name( + ExprName { + range: 556..557, + id: Identifier( + "X", + ), + ctx: Load, + }, + ), + type_params: [ + TypeVar( + TypeParamTypeVar { + range: 558..559, + name: Identifier( + "T", + ), + bound: None, + }, + ), + ], + value: Name( + ExprName { + range: 569..570, + id: Identifier( + "T", + ), + ctx: Load, + }, + ), + }, + ), ]