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

View File

@@ -116,8 +116,6 @@ def _faked(module, obj, name):
if faked_mod is None:
return None, None
module.used_names = faked_mod.used_names
# Having the module as a `parser.representation.module`, we need to scan
# for methods.
if name is None:
@@ -193,7 +191,8 @@ def _get_faked(module, obj, name=None):
def get_faked(module, obj, name=None, parent=None):
faked, fake_module = _get_faked(module and module.obj, obj, name)
faked.parent = parent
module.used_names = fake_module.used_names
if module is not None:
module.used_names = fake_module.used_names
return faked

View File

@@ -31,6 +31,7 @@ from jedi.evaluate.cache import CachedMetaClass, memoize_default
from jedi.evaluate import analysis
from jedi.evaluate import pep0484
from jedi import common
from jedi.evaluate.filters import DictFilter
class IterableWrapper(tree.Base):
@@ -56,10 +57,10 @@ class IterableWrapper(tree.Base):
try:
method = builtin_methods[name_str, self.type]
except KeyError:
dct[name_str] = [name]
dct[name_str] = name
else:
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
@@ -111,6 +112,10 @@ class GeneratorMixin(object):
gen_obj = compiled.get_special_object(self._evaluator, 'GENERATOR_OBJECT')
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):
return True