forked from VimPlug/jedi
a few other small changes before changing compiled Instance execution to the representation
This commit is contained in:
@@ -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)]
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user