diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index 67c755ac..8b672a1f 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -102,7 +102,7 @@ class Evaluator(object): f = finder.NameFinder(self, scope, name_str, position) scopes = f.scopes(search_global) if is_goto: - return f.filter_name(scopes, search_global) + return f.filter_name(scopes) return f.find(scopes, search_global) @memoize_default(default=[], evaluator_is_first_arg=True) diff --git a/jedi/evaluate/finder.py b/jedi/evaluate/finder.py index c57000bb..1d380447 100644 --- a/jedi/evaluate/finder.py +++ b/jedi/evaluate/finder.py @@ -15,7 +15,6 @@ from itertools import chain from jedi._compatibility import unicode, u from jedi.parser import tree as pr -from jedi.parser import fast from jedi import debug from jedi import common from jedi import settings @@ -64,7 +63,7 @@ class NameFinder(object): @debug.increase_indent def find(self, scopes, search_global=False): - names = self.filter_name(scopes, search_global) + names = self.filter_name(scopes) types = self._names_to_types(names, search_global) if not names and not types \ @@ -148,17 +147,12 @@ class NameFinder(object): return [get_param(name_scope, n) for n in last_names] return last_names - def filter_name(self, names_dicts, search_global=False): + def filter_name(self, names_dicts): """ Searches names that are defined in a scope (the different `names_dicts`), until a name fits. """ names = [] - self.maybe_descriptor = isinstance(self.scope, er.Class) - if not search_global and self.scope.isinstance(er.Function): - return [n for n in self.scope.get_magic_function_names() - if str(n) == str(self.name_str)] - for names_dict, position in names_dicts: names = self.names_dict_lookup(names_dict, position) if names: diff --git a/jedi/evaluate/representation.py b/jedi/evaluate/representation.py index fe25c5cd..b7e7f8a7 100644 --- a/jedi/evaluate/representation.py +++ b/jedi/evaluate/representation.py @@ -572,7 +572,8 @@ class Function(use_metaclass(CachedMetaClass, Wrapper)): if search_global: yield self.names_dict else: - raise NotImplementedError + for names_dict in compiled.magic_function_class.names_dicts(False): + yield names_dict def get_magic_function_names(self): return compiled.magic_function_class.get_defined_names()