1
0
forked from VimPlug/jedi

a few other small changes before changing compiled Instance execution to the representation

This commit is contained in:
Dave Halter
2014-01-11 01:19:09 +01:00
parent 32e39ef4ca
commit 8337f77886
2 changed files with 14 additions and 9 deletions

View File

@@ -195,13 +195,12 @@ class Evaluator(object):
@recursion.recursion_decorator
def eval_statement(self, stmt, seek_name=None):
"""
The starting point of the completion. A statement always owns a call list,
which are the calls, that a statement does.
In case multiple names are defined in the statement, `seek_name` returns
the result for this name.
The starting point of the completion. A statement always owns a call
list, which are the calls, that a statement does. In case multiple
names are defined in the statement, `seek_name` returns the result for
this name.
:param stmt: A `pr.Statement`.
:param seek_name: A string.
"""
debug.dbg('eval_statement %s (%s)' % (stmt, seek_name))
expression_list = stmt.expression_list()
@@ -389,7 +388,7 @@ class Evaluator(object):
pass
if isinstance(obj, compiled.PyObject):
return list(obj.execute(params))
return list(obj.execute(self, params))
elif obj.isinstance(er.Class):
# There maybe executions of executions.
return [er.Instance(self, obj, params)]

View File

@@ -69,7 +69,7 @@ class PyObject(Base):
# might not exist sometimes (raises AttributeError)
return self._cls().obj.__name__
def execute(self, params):
def execute(self, evaluator, params):
t = self.type()
if t == 'class':
if not self.instantiated:
@@ -77,9 +77,15 @@ class PyObject(Base):
elif t == 'def':
for name in self._parse_function_doc()[1].split():
try:
yield create(getattr(_builtins, name), builtin, True)
bltn_obj = create(getattr(_builtins, name), builtin, module=builtin)
except AttributeError:
pass
continue
else:
if isinstance(bltn_obj, PyObject):
yield bltn_obj
else:
for result in evaluator.execute(bltn_obj, params):
yield result
def get_self_attributes(self):
return [] # Instance compatibility