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

View File

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