diff options
author | Lysandros Nikolaou <lisandrosnik@gmail.com> | 2021-01-07 22:31:25 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-07 22:31:25 (GMT) |
commit | 07dcd86ceed0bd88d1e96dcf53b1de2fea024385 (patch) | |
tree | 4bcfb1f5fd933133abc964d8317e835a2bc7cb5b /Grammar/python.gram | |
parent | a581a868d97f649aedf868a1d27865a10925c73a (diff) | |
download | cpython-07dcd86ceed0bd88d1e96dcf53b1de2fea024385.zip cpython-07dcd86ceed0bd88d1e96dcf53b1de2fea024385.tar.gz cpython-07dcd86ceed0bd88d1e96dcf53b1de2fea024385.tar.bz2 |
bpo-42860: Remove type error from grammar (GH-24156)
This is only there so that alternative implementations written in statically-typed languages can use this grammar without
having type errors in the way.
Automerge-Triggered-By: GH:lysnikolaou
Diffstat (limited to 'Grammar/python.gram')
-rw-r--r-- | Grammar/python.gram | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Grammar/python.gram b/Grammar/python.gram index 8517bf2..05ddce5 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -696,11 +696,17 @@ invalid_dict_comprehension: | '{' a='**' bitwise_or for_if_clauses '}' { RAISE_SYNTAX_ERROR_KNOWN_LOCATION(a, "dict unpacking cannot be used in dict comprehension") } invalid_parameters: - | param_no_default* (slash_with_default | param_with_default+) param_no_default { + | param_no_default* invalid_parameters_helper param_no_default { RAISE_SYNTAX_ERROR("non-default argument follows default argument") } +invalid_parameters_helper: # This is only there to avoid type errors + | a=slash_with_default { _PyPegen_singleton_seq(p, a) } + | param_with_default+ invalid_lambda_parameters: - | lambda_param_no_default* (lambda_slash_with_default | lambda_param_with_default+) lambda_param_no_default { + | lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default { RAISE_SYNTAX_ERROR("non-default argument follows default argument") } +invalid_lambda_parameters_helper: + | a=lambda_slash_with_default { _PyPegen_singleton_seq(p, a) } + | lambda_param_with_default+ invalid_star_etc: | '*' (')' | ',' (')' | '**')) { RAISE_SYNTAX_ERROR("named arguments must follow bare *") } | '*' ',' TYPE_COMMENT { RAISE_SYNTAX_ERROR("bare * has associated type comment") } |