diff --git a/jedi/evaluate/precedence.py b/jedi/evaluate/precedence.py index 49a58db6..88783d3a 100644 --- a/jedi/evaluate/precedence.py +++ b/jedi/evaluate/precedence.py @@ -86,7 +86,8 @@ def _get_number(iterator, priority=PythonGrammar.LOWEST_PRIORITY): if isinstance(el, pr.Operator): if el in PythonGrammar.FACTOR: right = _get_number(iterator, PythonGrammar.FACTOR_PRIORITY) - elif el in PythonGrammar.NOT_TEST and priority <= PythonGrammar.FACTOR_PRIORITY: + elif el in PythonGrammar.NOT_TEST \ + and priority >= PythonGrammar.NOT_TEST_PRIORITY: right = _get_number(iterator, PythonGrammar.NOT_TEST_PRIORITY) else: _syntax_error(el) diff --git a/test/test_evaluate/test_precedence.py b/test/test_evaluate/test_precedence.py index 14aa3dea..3fc3ea62 100644 --- a/test/test_evaluate/test_precedence.py +++ b/test/test_evaluate/test_precedence.py @@ -24,7 +24,7 @@ def test_simple(): def test_prefixed(): assert parse_tree('--2') == (None, '-', (None, '-', 2)) - assert parse_tree('1 and not - 2') == (1, 'and', (None, '-', 2)) + assert parse_tree('1 and not - 2') == (1, 'and', (None, 'not', (None, '-', 2))) def test_invalid():