1
0
forked from VimPlug/jedi

Get rid of the node_is_value parameter

This commit is contained in:
Dave Halter
2019-08-23 00:02:39 +02:00
parent bd754718e1
commit 05fe29a156
3 changed files with 31 additions and 34 deletions

View File

@@ -15,7 +15,7 @@ from jedi.inference import imports
from jedi.inference.helpers import infer_call_of_leaf, parse_dotted_names from jedi.inference.helpers import infer_call_of_leaf, parse_dotted_names
from jedi.inference.filters import get_global_filters from jedi.inference.filters import get_global_filters
from jedi.inference.gradual.conversion import convert_values from jedi.inference.gradual.conversion import convert_values
from jedi.parser_utils import get_statement_of_position, cut_value_at_position from jedi.parser_utils import get_statement_of_position, cut_value_at_position, is_scope
def get_call_signature_param_names(call_signatures): def get_call_signature_param_names(call_signatures):
@@ -70,7 +70,10 @@ def get_user_context(module_context, position):
scanned_node = scan(module_context.tree_node) scanned_node = scan(module_context.tree_node)
if scanned_node: if scanned_node:
return module_context.create_context(scanned_node, node_is_value=True) if is_scope(scanned_node):
return module_context.create_value(scanned_node).as_context()
else:
return module_context.create_context(scanned_node)
return module_context return module_context
else: else:
return module_context.create_context(user_stmt) return module_context.create_context(user_stmt)
@@ -284,7 +287,7 @@ class Completion:
return return
# Complete the methods that are defined in the super classes. # Complete the methods that are defined in the super classes.
class_context = self._module_context.create_context(cls, node_is_value=True) class_context = self._module_context.create_value(cls).as_context()
if cls.start_pos[1] >= leaf.start_pos[1]: if cls.start_pos[1] >= leaf.start_pos[1]:
return return

View File

@@ -289,13 +289,10 @@ def _create(inference_state, access_handle, parent_context, *args):
return ValueSet({compiled_object}) return ValueSet({compiled_object})
module_context = parent_context.get_root_context() module_context = parent_context.get_root_context()
tree_values = ValueSet({ if tree_node is module_node:
module_context.create_context( tree_values = ValueSet({module_context.get_value()})
tree_node, else:
node_is_value=True, tree_values = ValueSet({module_context.create_value(tree_node)})
)._value
# TODO private access!
})
if tree_node.type == 'classdef': if tree_node.type == 'classdef':
if not access_handle.is_class(): if not access_handle.is_class():
# Is an instance, not a class. # Is an instance, not a class.

View File

@@ -43,7 +43,7 @@ class AbstractContext(object):
else: else:
raise NotImplementedError("Probably shouldn't happen: %s" % node) raise NotImplementedError("Probably shouldn't happen: %s" % node)
def create_context(self, node, node_is_value=False): def create_context(self, node):
def from_scope_node(scope_node, is_nested=True): def from_scope_node(scope_node, is_nested=True):
if scope_node == base_node: if scope_node == base_node:
return self return self
@@ -60,9 +60,6 @@ class AbstractContext(object):
base_node = self.tree_node base_node = self.tree_node
if node_is_value and parser_utils.is_scope(node):
scope_node = node
else:
def parent_scope(node): def parent_scope(node):
while True: while True:
node = node.parent node = node.parent