diff --git a/jedi/inference/compiled/mixed.py b/jedi/inference/compiled/mixed.py index 833ce43f..af24d3a9 100644 --- a/jedi/inference/compiled/mixed.py +++ b/jedi/inference/compiled/mixed.py @@ -289,10 +289,7 @@ def _create(inference_state, access_handle, parent_context, *args): return ValueSet({compiled_object}) module_context = parent_context.get_root_context() - if tree_node is module_node: - tree_values = ValueSet({module_context.get_value()}) - else: - tree_values = ValueSet({module_context.create_value(tree_node)}) + tree_values = ValueSet({module_context.create_value(tree_node)}) if tree_node.type == 'classdef': if not access_handle.is_class(): # Is an instance, not a class. diff --git a/jedi/inference/context.py b/jedi/inference/context.py index 765611ab..83bb199b 100644 --- a/jedi/inference/context.py +++ b/jedi/inference/context.py @@ -25,6 +25,10 @@ class AbstractContext(object): def create_value(self, node): from jedi.inference import value + if node == self.tree_node: + assert self.is_module() + return self.get_value() + parent_context = self.create_context(node) if node.type in ('funcdef', 'lambdef'): @@ -56,7 +60,7 @@ class AbstractContext(object): if node.start_pos >= scope_node.children[-1].start_pos: return parent_context return CompForContext(parent_context, scope_node) - raise Exception("There's a scope that was not managed.") + raise Exception("There's a scope that was not managed: %s" % scope_node) def parent_scope(node): while True: