1
0
forked from VimPlug/jedi

fix multiplication of arrays with precedences

This commit is contained in:
Dave Halter
2014-03-09 02:23:13 +01:00
parent 61fa9b7fb4
commit e2832e1172
3 changed files with 11 additions and 11 deletions

View File

@@ -71,7 +71,6 @@ backtracking algorithm.
import itertools
from jedi._compatibility import next, hasattr, unicode
from jedi import common
from jedi.parser import representation as pr
from jedi.parser.tokenize import Token
from jedi import debug
@@ -189,13 +188,6 @@ class Evaluator(object):
elif isinstance(element, compiled.CompiledObject):
return [element]
'''
elif isinstance(call, pr.Operator):
if call == '*':
if [r for r in result if isinstance(r, iterable.Array)
or isinstance(r, compiled.CompiledObject)
and isinstance(r.obj, (str, unicode))]:
# if it is an iterable, ignore * operations
next(calls_iterator)
elif call == 'if':
# Ternary operators.
for call in calls_iterator:
@@ -206,8 +198,6 @@ class Evaluator(object):
break
continue
'''
elif isinstance(element, pr.Operator):
pass
elif not isinstance(element, Token):
return self.eval_call(element)
return []

View File

@@ -2,7 +2,7 @@ import copy
from jedi.parser import representation as pr
from jedi.evaluate import iterable
from jedi.evaluate import common
from jedi import common
from jedi.evaluate import helpers

View File

@@ -2,9 +2,12 @@
Handles operator precedence.
"""
from jedi._compatibility import unicode
from jedi.parser import representation as pr
from jedi import debug
from jedi.common import PushBackIterator
from jedi.evaluate.compiled import CompiledObject
from jedi.evaluate import iterable
class PythonGrammar(object):
@@ -152,4 +155,11 @@ def _check_operator(iterator, priority=PythonGrammar.LOWEST_PRIORITY):
def calculate(left, operator, right):
if operator == '*':
if [l for l in left if isinstance(l, iterable.Array)
or isinstance(l, CompiledObject)
and isinstance(l.obj, (str, unicode))]:
# if it is an iterable, ignore * operations
return left
return left + right