From 880aa152fbb0f626a37e73431d7b530f2d01878f Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Sat, 17 Dec 2016 16:15:23 +0100 Subject: [PATCH] Fix an import test and with this finally the whole 3.3 test suite is working again. --- jedi/evaluate/imports.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/jedi/evaluate/imports.py b/jedi/evaluate/imports.py index 847c8ac5..979ebd79 100644 --- a/jedi/evaluate/imports.py +++ b/jedi/evaluate/imports.py @@ -18,15 +18,16 @@ import sys from jedi._compatibility import find_module, unicode from jedi import debug +from jedi import settings +from jedi.common import source_to_unicode, unite from jedi.parser import fast from jedi.parser import tree from jedi.parser.utils import save_parser, load_parser, parser_cache from jedi.evaluate import sys_path from jedi.evaluate import helpers -from jedi import settings -from jedi.common import source_to_unicode, unite from jedi.evaluate import compiled from jedi.evaluate import analysis +from jedi.evaluate.cache import memoize_default from jedi.evaluate.filters import AbstractNameDefinition @@ -56,6 +57,9 @@ def completion_names(evaluator, imp, pos): return importer.completion_names(evaluator, only_modules) +# This memoization is needed, because otherwise we will infinitely loop on +# certain imports. +@memoize_default(default=set()) def infer_import(context, tree_name, is_goto=False): module_context = context.get_root_context() import_node = tree_name.get_parent_until(tree.Import)