forked from VimPlug/jedi
fix a slice issue with precedences.
This commit is contained in:
@@ -174,6 +174,8 @@ class Evaluator(object):
|
|||||||
def _eval_precedence(self, _precedence):
|
def _eval_precedence(self, _precedence):
|
||||||
left = self.process_precedence_element(_precedence.left)
|
left = self.process_precedence_element(_precedence.left)
|
||||||
right = self.process_precedence_element(_precedence.right)
|
right = self.process_precedence_element(_precedence.right)
|
||||||
|
if _precedence.operator == ':':
|
||||||
|
return []
|
||||||
return precedence.calculate(self, left, _precedence.operator, right)
|
return precedence.calculate(self, left, _precedence.operator, right)
|
||||||
|
|
||||||
def _eval_statement_element(self, element):
|
def _eval_statement_element(self, element):
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ from jedi.evaluate import imports
|
|||||||
# This is something like the sys.path, but only for searching params. It means
|
# This is something like the sys.path, but only for searching params. It means
|
||||||
# that this is the order in which Jedi searches params.
|
# that this is the order in which Jedi searches params.
|
||||||
search_param_modules = ['.']
|
search_param_modules = ['.']
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
class ParamListener(object):
|
class ParamListener(object):
|
||||||
|
|||||||
@@ -475,4 +475,4 @@ def create_indexes_or_slices(evaluator, index_array):
|
|||||||
step = None
|
step = None
|
||||||
return [Slice(evaluator, start, stop, step)]
|
return [Slice(evaluator, start, stop, step)]
|
||||||
else:
|
else:
|
||||||
return evaluator.process_precedence_element(prec) or []
|
return evaluator.process_precedence_element(prec)
|
||||||
|
|||||||
@@ -183,7 +183,8 @@ def calculate(evaluator, left_result, operator, right_result):
|
|||||||
return result
|
return result
|
||||||
else:
|
else:
|
||||||
if not left_result or not right_result:
|
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 left in left_result:
|
||||||
for right in right_result:
|
for right in right_result:
|
||||||
|
|||||||
@@ -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()
|
#? str()
|
||||||
b[1]
|
b[1]
|
||||||
|
|
||||||
|
|
||||||
|
# -----------------
|
||||||
|
# syntax errors
|
||||||
|
# -----------------
|
||||||
|
|
||||||
|
# strange slice
|
||||||
|
z = sorted([1], key = lambda x : x):
|
||||||
|
#? int()
|
||||||
|
z
|
||||||
|
|||||||
Reference in New Issue
Block a user