From 4a69ab3bf87688c930b46557c1ce00b408003d2d Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Sat, 8 Sep 2018 14:13:14 +0200 Subject: [PATCH] Cleanup StubParserTreeFilter.values --- jedi/plugins/typeshed.py | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/jedi/plugins/typeshed.py b/jedi/plugins/typeshed.py index d7a41901..0d1358c9 100644 --- a/jedi/plugins/typeshed.py +++ b/jedi/plugins/typeshed.py @@ -9,7 +9,7 @@ from jedi.parser_utils import get_call_signature_for_any from jedi.evaluate.base_context import ContextSet, iterator_to_context_set, \ ContextWrapper from jedi.evaluate.filters import AbstractTreeName, ParserTreeFilter, \ - TreeNameDefinition, NameWrapper, MergedFilter + TreeNameDefinition, NameWrapper from jedi.evaluate.context import ModuleContext, FunctionContext, \ ClassContext from jedi.evaluate.context.typing import TypingModuleFilterWrapper, \ @@ -255,24 +255,15 @@ class StubParserTreeFilter(ParserTreeFilter): used_stub_names = set() result_names = [] for key_name, names in self._used_names.items(): - result_names += self._convert_names(self._filter(names)) - used_stub_names.add(key_name) + found_names = self._convert_names(self._filter(names)) + result_names += found_names + if found_names: + used_stub_names.add(key_name) - non_stub_filters = [] - for f in self._non_stub_filters: - # TODO this is really ugly. accessing some random _used_names and - # _filters. Please change. - if isinstance(f, MergedFilter): - non_stub_filters += f._filters - else: - non_stub_filters.append(f) - - for non_stub_filter in non_stub_filters: - if not hasattr(non_stub_filter, '_used_names'): - continue - for key_name in non_stub_filter._used_names: - if key_name not in used_stub_names: - result_names += non_stub_filter.get(key_name) + for non_stub_filter in self._non_stub_filters: + for name in non_stub_filter.values(): + if name.string_name not in used_stub_names: + result_names.append(name) return result_names def _get_non_stub_names(self, string_name):