From c1ed3bf38a3ced1bd70da264b990313f603770ed Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Thu, 3 Jul 2014 11:48:26 +0200 Subject: [PATCH] cleanup NameFinder.scopes, fully use scope_names_generator. --- jedi/evaluate/finder.py | 13 +------------ jedi/parser/representation.py | 4 ++++ 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/jedi/evaluate/finder.py b/jedi/evaluate/finder.py index a3000617..da07de07 100644 --- a/jedi/evaluate/finder.py +++ b/jedi/evaluate/finder.py @@ -66,18 +66,7 @@ class NameFinder(object): if search_global: return get_names_of_scope(self._evaluator, self.scope, self.position) else: - try: - gen = self.scope.scope_names_generator - except AttributeError: - if isinstance(self.scope, er.Class): - # Classes don't have a positional limitation of their - # state. It's the whole class. - names = self.scope.get_defined_names() - else: - names = _get_defined_names_for_position(self.scope, self.position) - return iter([(self.scope, names)]) - else: - return gen(self.position) + return self.scope.scope_names_generator(self.position) def filter_name(self, scope_names_generator): """ diff --git a/jedi/parser/representation.py b/jedi/parser/representation.py index 192ee35d..950539f7 100644 --- a/jedi/parser/representation.py +++ b/jedi/parser/representation.py @@ -705,6 +705,10 @@ class Flow(Scope): self.next.parent = self.parent return next + def scope_names_generator(self, position=None): + # For `with` and `for`. + yield self, filter_after_position(self.get_defined_names(), position) + class ForFlow(Flow): """