From 17525983535a65379eac4602cbac0d7d8e72eaad Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 12 Oct 2016 15:54:54 +0200 Subject: [PATCH] A small class name lookup improvement. --- jedi/evaluate/representation.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/jedi/evaluate/representation.py b/jedi/evaluate/representation.py index 72bbd554..4dc4a9f6 100644 --- a/jedi/evaluate/representation.py +++ b/jedi/evaluate/representation.py @@ -217,7 +217,7 @@ class Instance(use_metaclass(CachedMetaClass, Executed)): for cls in self.base.py__mro__(): if isinstance(cls, compiled.CompiledObject): - yield CompiledInstanceClassFilter(self._evaluator, self, cls, origin_scope) + yield CompiledInstanceClassFilter(self._evaluator, self, cls) else: yield InstanceClassFilter(self._evaluator, self, cls.base, origin_scope) @@ -273,12 +273,11 @@ class Instance(use_metaclass(CachedMetaClass, Executed)): class CompiledInstanceClassFilter(compiled.CompiledObjectFilter): - def __init__(self, evaluator, instance, compiled_object, origin_scope): + def __init__(self, evaluator, instance, compiled_object): super(CompiledInstanceClassFilter, self).__init__( evaluator, compiled_object, is_instance=True, - origin_scope=origin_scope ) self._instance = instance @@ -302,11 +301,18 @@ class InstanceClassFilter(ParserTreeFilter): return [get_instance_el(self._evaluator, self._instance, name, True) for name in names] + def _check_flows(self, names): + return names + class SelfNameFilter(InstanceClassFilter): def _filter(self, names): names = self._filter_self_names(names) - return list(self._check_flows(names)) + if isinstance(self._parser_scope, compiled.CompiledObject): + # This would be for builtin skeletons, which are not yet supported. + return [] + start, end = self._parser_scope.start_pos, self._parser_scope.end_pos + return [n for n in names if start < n.start_pos < end] def _filter_self_names(self, names): for name in names: