diff --git a/jedi/evaluate/compiled/fake.py b/jedi/evaluate/compiled/fake.py index 6242483d..0037cfc7 100644 --- a/jedi/evaluate/compiled/fake.py +++ b/jedi/evaluate/compiled/fake.py @@ -100,8 +100,10 @@ def _faked(module, obj, name): def get_faked(module, obj, name=None): obj = obj.__class__ if is_class_instance(obj) else obj result = _faked(module, obj, name) - # TODO may this ever happen? result None? if so, document! - if not isinstance(result, pt.Class) and result is not None: + if result is None or isinstance(result, pt.Class): + # We're not interested in classes. What we want is functions. + return None + else: # Set the docstr which was previously not set (faked modules don't # contain it). doc = '"""%s"""' % obj.__doc__ # TODO need escapes. diff --git a/jedi/evaluate/compiled/fake/io.pym b/jedi/evaluate/compiled/fake/io.pym index 8225477a..87b02eed 100644 --- a/jedi/evaluate/compiled/fake/io.pym +++ b/jedi/evaluate/compiled/fake/io.pym @@ -1,3 +1,6 @@ class TextIOWrapper(): def __next__(self): - return 'hacked io return' + return str() + + def __iter__(self): + yield str() diff --git a/test/completion/basic.py b/test/completion/basic.py index 97155bcc..8337b8dd 100644 --- a/test/completion/basic.py +++ b/test/completion/basic.py @@ -143,6 +143,9 @@ ret()[0] with open('') as f: #? ['closed'] f.closed + for line in f: + #? str() + line with open('') as f1, open('') as f2: #? ['closed']