diff --git a/parso/python/errors.py b/parso/python/errors.py index 4d9bff2..2142dd1 100644 --- a/parso/python/errors.py +++ b/parso/python/errors.py @@ -800,18 +800,9 @@ class _ArglistRule(SyntaxRule): if argument.type == 'argument': first = argument.children[0] - if ( - argument.children[1].type in _COMP_FOR_TYPES - and len(node.children) >= 2 - ): - if self._normalizer.version >= (3, 7): - return True - elif len(node.children) == 2 and node.children[1] == ",": - # trailing comma allowed until 3.7 - pass - else: - return True - + if argument.children[1].type in _COMP_FOR_TYPES and len(node.children) >= 2: + # a(a, b for b in c) + return True if first in ('*', '**'): if first == '*': if kw_unpacking_only: diff --git a/test/test_python_errors.py b/test/test_python_errors.py index 94ff0c7..743cb25 100644 --- a/test/test_python_errors.py +++ b/test/test_python_errors.py @@ -378,17 +378,16 @@ def test_repeated_kwarg(): @pytest.mark.parametrize( - ('source', 'no_errors', 'version'), [ - ('a(a for a in b,)', True, '3.6'), - ('a(a for a in b,)', False, '3.7'), - ('a(a for a in b, a)', False, None), - ('a(a, a for a in b)', False, None), - ('a(a, b, a for a in b, c, d)', False, None), - ('a(a for a in b)', True, None), - ('a((a for a in b), c)', True, None), - ('a(c, (a for a in b))', True, None), - ('a(a, (a for a in b), c)', True, None), + ('source', 'no_errors'), [ + ('a(a for a in b,)', False), + ('a(a for a in b, a)', False), + ('a(a, a for a in b)', False), + ('a(a, b, a for a in b, c, d)', False), + ('a(a for a in b)', True), + ('a((a for a in b), c)', True), + ('a(c, (a for a in b))', True), + ('a(a, b, (a for a in b), c, d)', True), ] ) -def test_unparenthesized_genexp(source, no_errors, version): - assert bool(_get_error_list(source, version=version)) ^ no_errors +def test_unparenthesized_genexp(source, no_errors): + assert bool(_get_error_list(source)) ^ no_errors