1
0
forked from VimPlug/jedi

Fix generators.

This commit is contained in:
Dave Halter
2016-10-16 04:17:11 +02:00
parent 4ca3556c3b
commit 0a0cb2a722
2 changed files with 9 additions and 5 deletions
+2 -3
View File
@@ -116,8 +116,6 @@ def _faked(module, obj, name):
if faked_mod is None: if faked_mod is None:
return None, None return None, None
module.used_names = faked_mod.used_names
# Having the module as a `parser.representation.module`, we need to scan # Having the module as a `parser.representation.module`, we need to scan
# for methods. # for methods.
if name is None: if name is None:
@@ -193,7 +191,8 @@ def _get_faked(module, obj, name=None):
def get_faked(module, obj, name=None, parent=None): def get_faked(module, obj, name=None, parent=None):
faked, fake_module = _get_faked(module and module.obj, obj, name) faked, fake_module = _get_faked(module and module.obj, obj, name)
faked.parent = parent faked.parent = parent
module.used_names = fake_module.used_names if module is not None:
module.used_names = fake_module.used_names
return faked return faked
+7 -2
View File
@@ -31,6 +31,7 @@ from jedi.evaluate.cache import CachedMetaClass, memoize_default
from jedi.evaluate import analysis from jedi.evaluate import analysis
from jedi.evaluate import pep0484 from jedi.evaluate import pep0484
from jedi import common from jedi import common
from jedi.evaluate.filters import DictFilter
class IterableWrapper(tree.Base): class IterableWrapper(tree.Base):
@@ -56,10 +57,10 @@ class IterableWrapper(tree.Base):
try: try:
method = builtin_methods[name_str, self.type] method = builtin_methods[name_str, self.type]
except KeyError: except KeyError:
dct[name_str] = [name] dct[name_str] = name
else: else:
parent = BuiltinMethod(self, method, name.parent) parent = BuiltinMethod(self, method, name.parent)
dct[name_str] = [helpers.FakeName(name_str, parent, is_definition=True)] dct[name_str] = helpers.FakeName(name_str, parent, is_definition=True)
return dct return dct
@@ -111,6 +112,10 @@ class GeneratorMixin(object):
gen_obj = compiled.get_special_object(self._evaluator, 'GENERATOR_OBJECT') gen_obj = compiled.get_special_object(self._evaluator, 'GENERATOR_OBJECT')
yield self._get_names_dict(gen_obj.names_dict) yield self._get_names_dict(gen_obj.names_dict)
def get_filters(self, search_global, until_position=None, origin_scope=None):
gen_obj = compiled.get_special_object(self._evaluator, 'GENERATOR_OBJECT')
yield DictFilter(self._get_names_dict(gen_obj.names_dict))
def py__bool__(self): def py__bool__(self):
return True return True