diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index c6ed7396..dcdb8d6e 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -126,8 +126,8 @@ class Evaluator(object): ass_details = stmt.assignment_details if ass_details and ass_details[0][1] != '=' and not isinstance(stmt, -er.InstanceElement) and False: # TODO don't check for this. - print('LEFT', ass_details, stmt, stmt.parent) +er.InstanceElement): # TODO don't check for this. + #print('LEFT', ass_details, stmt, stmt.parent) expr_list, operator = ass_details[0] name = str(expr_list[0].name) start_pos = stmt.start_pos[0] - 1, stmt.start_pos[1] + 30000 diff --git a/jedi/evaluate/precedence.py b/jedi/evaluate/precedence.py index c7a10ef0..4a4ab1ac 100644 --- a/jedi/evaluate/precedence.py +++ b/jedi/evaluate/precedence.py @@ -202,4 +202,7 @@ def _element_calculate(left, operator, right): elif operator == '+': if is_number(left) and is_number(right) or is_string(left) and is_string(right): return [create(left.obj + right.obj)] + elif operator == '-': + if is_number(left) and is_number(right): + return [create(left.obj - right.obj)] return [left, right] diff --git a/test/completion/operators.py b/test/completion/operators.py index 777acd46..15782bd0 100644 --- a/test/completion/operators.py +++ b/test/completion/operators.py @@ -64,3 +64,10 @@ i += 1 i += 1 #? float() x[i] + +i = 1 +i += 1 +i -= 3 +i += 1 +#? int() +x[i]