forked from VimPlug/jedi
Correct issues with slices and some more subtle bugs.
This commit is contained in:
@@ -75,12 +75,12 @@ class LazyName(helpers.FakeName):
|
||||
except AttributeError:
|
||||
pass
|
||||
else:
|
||||
# cut the `c` from `.pyc`
|
||||
path = re.sub('c$', '', path)
|
||||
if path.endswith('.py'):
|
||||
# cut the `c` from `.pyc`
|
||||
with open(path) as f:
|
||||
source = source_to_unicode(f.read())
|
||||
mod = FastParser(load_grammar(), source, path[:-1]).module
|
||||
mod = FastParser(load_grammar(), source, path).module
|
||||
if parser_path:
|
||||
assert len(parser_path) == 1
|
||||
found = self._evaluator.find_types(mod, parser_path[0], search_global=True)
|
||||
@@ -88,7 +88,7 @@ class LazyName(helpers.FakeName):
|
||||
found = [self._evaluator.wrap(mod)]
|
||||
|
||||
if not found:
|
||||
debug.warning('Possibly an interpreter lookup for Python code failed %s',
|
||||
debug.warning('Interpreter lookup failed in global scope for %s',
|
||||
parser_path)
|
||||
|
||||
if not found:
|
||||
|
||||
@@ -184,7 +184,7 @@ def _check_for_exception_catch(evaluator, jedi_obj, exception, payload=None):
|
||||
# Check name
|
||||
key, values = args[1]
|
||||
assert len(values) == 1
|
||||
names = evaluator.eval_element(values[0])
|
||||
names = list(evaluator.eval_element(values[0]))
|
||||
assert len(names) == 1 and isinstance(names[0], CompiledObject)
|
||||
assert names[0].obj == str(payload[1])
|
||||
|
||||
|
||||
@@ -634,11 +634,11 @@ class Slice(object):
|
||||
|
||||
result = self._evaluator.eval_element(element)
|
||||
if len(result) != 1:
|
||||
# We want slices to be clear defined with just one type.
|
||||
# Otherwise we will return an empty slice object.
|
||||
# For simplicity, we want slices to be clear defined with just
|
||||
# one type. Otherwise we will return an empty slice object.
|
||||
raise IndexError
|
||||
try:
|
||||
return result[0].obj
|
||||
return list(result)[0].obj
|
||||
except AttributeError:
|
||||
return None
|
||||
|
||||
|
||||
@@ -238,7 +238,7 @@ def collections_namedtuple(evaluator, obj, arguments):
|
||||
|
||||
# Parse source
|
||||
generated_class = Parser(evaluator.grammar, unicode(source)).module.subscopes[0]
|
||||
return set(er.Class(evaluator, generated_class))
|
||||
return set([er.Class(evaluator, generated_class)])
|
||||
|
||||
|
||||
@argument_clinic('first, /')
|
||||
|
||||
Reference in New Issue
Block a user