Don't give syntax errors for parenthesised kwargs <3.8

This commit is contained in:
Batuhan Taskaya
2020-05-23 14:35:36 +03:00
committed by Dave Halter
parent 8bb211fafb
commit a06521d912
2 changed files with 6 additions and 0 deletions

View File

@@ -742,6 +742,9 @@ class _AnnotatorRule(SyntaxRule):
class _ArgumentRule(SyntaxRule): class _ArgumentRule(SyntaxRule):
def is_issue(self, node): def is_issue(self, node):
first = node.children[0] first = node.children[0]
if self._normalizer.version < (3, 8):
# a((b)=c) is valid in <3.8
first = _remove_parens(first)
if node.children[1] == '=' and first.type != 'name': if node.children[1] == '=' and first.type != 'name':
if first.type == 'lambdef': if first.type == 'lambdef':
# f(lambda: 1=1) # f(lambda: 1=1)

View File

@@ -273,6 +273,9 @@ def test_too_many_levels_of_indentation():
assert not _get_error_list(build_nested('pass', 49, base=base)) assert not _get_error_list(build_nested('pass', 49, base=base))
assert _get_error_list(build_nested('pass', 50, base=base)) assert _get_error_list(build_nested('pass', 50, base=base))
def test_paren_kwarg():
assert _get_error_list("print((sep)=seperator)", version="3.8")
assert not _get_error_list("print((sep)=seperator)", version="3.7")
@pytest.mark.parametrize( @pytest.mark.parametrize(
'code', [ 'code', [