From 1f70e3301eddda9e019bb3f50b95c691390aded5 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Fri, 28 Jul 2023 16:10:30 +0200 Subject: [PATCH] Revert "Avoid one layer of caching that is probably useless" This reverts commit a34c348a550baf732fcc899ed735c81bd5133d3a. --- jedi/inference/compiled/value.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/jedi/inference/compiled/value.py b/jedi/inference/compiled/value.py index f1b74e84..bc716922 100644 --- a/jedi/inference/compiled/value.py +++ b/jedi/inference/compiled/value.py @@ -452,21 +452,18 @@ class CompiledValueFilter(AbstractFilter): if (is_descriptor or not has_attribute) \ and not self._inference_state.allow_descriptor_getattr: - return [self._get_name(name, is_empty=True)] + return [self._get_cached_name(name, is_empty=True)] if self.is_instance and not in_dir_callback(name): return [] - return [self._get_name(name)] + return [self._get_cached_name(name)] - def _get_name(self, name, is_empty=False): + @memoize_method + def _get_cached_name(self, name, is_empty=False): if is_empty: return EmptyCompiledName(self._inference_state, name) else: - return CompiledName( - self._inference_state, - self.compiled_value, - name - ) + return self._create_name(name) def values(self): from jedi.inference.compiled import builtin_from_name @@ -490,6 +487,13 @@ class CompiledValueFilter(AbstractFilter): names += filter.values() return names + def _create_name(self, name): + return CompiledName( + self._inference_state, + self.compiled_value, + name + ) + def __repr__(self): return "<%s: %s>" % (self.__class__.__name__, self.compiled_value)