1
0
forked from VimPlug/jedi

fix a slice issue with precedences.

This commit is contained in:
Dave Halter
2014-04-21 02:30:17 +02:00
parent e320c3a8a0
commit eaf54942fc
5 changed files with 15 additions and 3 deletions

View File

@@ -174,6 +174,8 @@ class Evaluator(object):
def _eval_precedence(self, _precedence):
left = self.process_precedence_element(_precedence.left)
right = self.process_precedence_element(_precedence.right)
if _precedence.operator == ':':
return []
return precedence.calculate(self, left, _precedence.operator, right)
def _eval_statement_element(self, element):

View File

@@ -27,7 +27,6 @@ from jedi.evaluate import imports
# This is something like the sys.path, but only for searching params. It means
# that this is the order in which Jedi searches params.
search_param_modules = ['.']
import sys
class ParamListener(object):

View File

@@ -475,4 +475,4 @@ def create_indexes_or_slices(evaluator, index_array):
step = None
return [Slice(evaluator, start, stop, step)]
else:
return evaluator.process_precedence_element(prec) or []
return evaluator.process_precedence_element(prec)

View File

@@ -183,7 +183,8 @@ def calculate(evaluator, left_result, operator, right_result):
return result
else:
if not left_result or not right_result:
return left_result + right_result
# illegal slices e.g. cause left/right_result to be None
return (left_result or []) + (right_result or [])
for left in left_result:
for right in right_result:

View File

@@ -98,3 +98,13 @@ for x in [l(0), l(1), l(2), l(3), l(4), l(5), l(6), l(7), l(8), l(9), l(10),
#? str()
b[1]
# -----------------
# syntax errors
# -----------------
# strange slice
z = sorted([1], key = lambda x : x):
#? int()
z