mirror of
https://github.com/davidhalter/parso.git
synced 2025-12-08 21:54:54 +08:00
Merge pull request #117 from isidentical/repeated-kwarg-39
Show which keyword argument is repeated on 3.9+
This commit is contained in:
@@ -820,7 +820,10 @@ class _ArglistRule(SyntaxRule):
|
|||||||
if first.type == 'name':
|
if first.type == 'name':
|
||||||
if first.value in arg_set:
|
if first.value in arg_set:
|
||||||
# f(x=1, x=2)
|
# f(x=1, x=2)
|
||||||
self.add_issue(first, message="keyword argument repeated")
|
message = "keyword argument repeated"
|
||||||
|
if self._normalizer.version >= (3, 9):
|
||||||
|
message += ": {}".format(first.value)
|
||||||
|
self.add_issue(first, message=message)
|
||||||
else:
|
else:
|
||||||
arg_set.add(first.value)
|
arg_set.add(first.value)
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -362,6 +362,16 @@ def test_continue_in_finally():
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
def test_forbidden_name(template, target):
|
def test_forbidden_name(template, target):
|
||||||
assert _get_error_list(template.format(target=target), version="3")[0].message
|
assert _get_error_list(template.format(target=target), version="3")
|
||||||
|
|
||||||
|
|
||||||
|
def test_repeated_kwarg():
|
||||||
|
# python 3.9+ shows which argument is repeated
|
||||||
|
assert (
|
||||||
|
_get_error_list("f(q=1, q=2)", version="3.8")[0].message
|
||||||
|
== "SyntaxError: keyword argument repeated"
|
||||||
|
)
|
||||||
|
assert (
|
||||||
|
_get_error_list("f(q=1, q=2)", version="3.9")[0].message
|
||||||
|
== "SyntaxError: keyword argument repeated: q"
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user