From c0f7e9f820b39d76e8b345877e6587329643e36c Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Sun, 27 Dec 2015 17:30:40 +0100 Subject: [PATCH] Fix an issue with predefined_if_name_dict. --- jedi/evaluate/__init__.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index 48103bfb..a4f1397e 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -249,13 +249,27 @@ class Evaluator(object): del self.predefined_if_name_dict_dict[if_stmt] return result else: + return self._eval_element_if_evaluated(element) return self._eval_element_cached(element) else: if predefined_if_name_dict: return self._eval_element_not_cached(element) else: + return self._eval_element_if_evaluated(element) return self._eval_element_cached(element) + def _eval_element_if_evaluated(self, element): + """ + TODO This function is temporary: Merge with eval_element. + """ + parent = element + while parent is not None: + parent = parent.parent + predefined_if_name_dict = self.predefined_if_name_dict_dict.get(parent) + if predefined_if_name_dict: + return self._eval_element_not_cached(element) + return self._eval_element_cached(element) + @memoize_default(evaluator_is_first_arg=True) def _eval_element_cached(self, element): return self._eval_element_not_cached(element)