mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-21 19:05:09 +00:00
Add syntax error for empty type parameter list (#12030)
## Summary (I'm pretty sure I added this in the parser re-write but must've got lost in the rebase?) This PR raises a syntax error if the type parameter list is empty. As per the grammar, there should be at least one type parameter: ``` type_params: | invalid_type_params | '[' type_param_seq ']' type_param_seq: ','.type_param+ [','] ``` Verified via the builtin `ast` module as well: ```console $ python3.13 -m ast parser/_.py Traceback (most recent call last): [..] File "parser/_.py", line 1 def foo[](): ^ SyntaxError: Type parameter list cannot be empty ``` ## Test Plan Add inline test cases and update the snapshots.
This commit is contained in:
parent
83fe44728b
commit
7cb2619ef5
4 changed files with 116 additions and 0 deletions
|
@ -3027,6 +3027,14 @@ impl<'src> Parser<'src> {
|
|||
Parser::parse_type_param,
|
||||
);
|
||||
|
||||
if type_params.is_empty() {
|
||||
// test_err type_params_empty
|
||||
// def foo[]():
|
||||
// pass
|
||||
// type ListOrSet[] = list | set
|
||||
self.add_error(ParseErrorType::EmptyTypeParams, self.current_token_range());
|
||||
}
|
||||
|
||||
self.expect(TokenKind::Rsqb);
|
||||
|
||||
ast::TypeParams {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue