fix unary op detection (#1600)

This commit is contained in:
David Szotten 2020-08-14 17:17:56 +01:00 committed by GitHub
parent d1ad8730e3
commit 820f38708f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 10 deletions

View File

@ -3297,12 +3297,12 @@ def do_match(self, line: Line) -> TMatchResult:
# if the leaves in the parsed string include a PERCENT, we need to
# make sure the initial LPAR is NOT preceded by an operator with
# higher or equal precedence to PERCENT
if (
is_valid_index(idx - 2)
and token.PERCENT in {leaf.type for leaf in LL[idx - 1 : next_idx]}
and (
if is_valid_index(idx - 2):
# mypy can't quite follow unless we name this
before_lpar = LL[idx - 2]
if token.PERCENT in {leaf.type for leaf in LL[idx - 1 : next_idx]} and (
(
LL[idx - 2].type
before_lpar.type
in {
token.STAR,
token.AT,
@ -3318,12 +3318,12 @@ def do_match(self, line: Line) -> TMatchResult:
)
or (
# only unary PLUS/MINUS
not is_valid_index(idx - 3)
and (LL[idx - 2].type in {token.PLUS, token.MINUS})
before_lpar.parent
and before_lpar.parent.type == syms.factor
and (before_lpar.type in {token.PLUS, token.MINUS})
)
)
):
continue
):
continue
# Should be followed by a non-empty RPAR...
if (

View File

@ -12,6 +12,7 @@
b + ("" % a)
-("" % a)
b - ("" % a)
b + -("" % a)
~("" % a)
2 ** ("" % a)
await ("" % a)
@ -32,6 +33,7 @@
b + "" % a
-("" % a)
b - "" % a
b + -("" % a)
~("" % a)
2 ** ("" % a)
await ("" % a)