1
0
forked from VimPlug/jedi

Remove get_executed_param_names_and_issues from FunctionExecution

This commit is contained in:
Dave Halter
2019-09-03 00:30:22 +02:00
parent 7ad7d22fb0
commit fe8a605d4a
3 changed files with 19 additions and 18 deletions

View File

@@ -92,16 +92,16 @@ def search_param_names(inference_state, function_value, funcdef):
try: try:
module_context = function_value.get_root_context() module_context = function_value.get_root_context()
function_executions = _search_function_executions( arguments_list = _search_function_arguments(
inference_state, inference_state,
module_context, module_context,
funcdef, funcdef,
string_name=string_name, string_name=string_name,
) )
if function_executions: if arguments_list:
zipped_param_names = zip(*list( zipped_param_names = zip(*list(
function_execution.get_executed_param_names_and_issues()[0] arguments.get_executed_param_names_and_issues(function_value)[0]
for function_execution in function_executions for arguments in arguments_list
)) ))
params = [DynamicExecutedParamName(executed_param_names) params = [DynamicExecutedParamName(executed_param_names)
for executed_param_names in zipped_param_names] for executed_param_names in zipped_param_names]
@@ -116,7 +116,7 @@ def search_param_names(inference_state, function_value, funcdef):
@inference_state_function_cache(default=None) @inference_state_function_cache(default=None)
@to_list @to_list
def _search_function_executions(inference_state, module_context, funcdef, string_name): def _search_function_arguments(inference_state, module_context, funcdef, string_name):
""" """
Returns a list of param names. Returns a list of param names.
""" """
@@ -127,7 +127,7 @@ def _search_function_executions(inference_state, module_context, funcdef, string
string_name = cls.name.value string_name = cls.name.value
compare_node = cls compare_node = cls
found_executions = False found_arguments = False
i = 0 i = 0
for for_mod_context in imports.get_module_contexts_containing_name( for for_mod_context in imports.get_module_contexts_containing_name(
inference_state, [module_context], string_name): inference_state, [module_context], string_name):
@@ -141,14 +141,14 @@ def _search_function_executions(inference_state, module_context, funcdef, string
return return
random_context = for_mod_context.create_context(name) random_context = for_mod_context.create_context(name)
for function_execution in _check_name_for_execution( for arguments in _check_name_for_execution(
inference_state, random_context, compare_node, name, trailer): inference_state, random_context, compare_node, name, trailer):
found_executions = True found_arguments = True
yield function_execution yield arguments
# If there are results after processing a module, we're probably # If there are results after processing a module, we're probably
# good to process. This is a speed optimization. # good to process. This is a speed optimization.
if found_executions: if found_arguments:
return return
@@ -201,13 +201,16 @@ def _check_name_for_execution(inference_state, context, compare_node, name, trai
value_node = value.tree_node value_node = value.tree_node
if compare_node == value_node: if compare_node == value_node:
for func_execution in create_func_excs(value): for func_execution in create_func_excs(value):
yield func_execution # TODO private access
yield func_execution._arguments
elif isinstance(value.parent_context, FunctionExecutionContext) and \ elif isinstance(value.parent_context, FunctionExecutionContext) and \
compare_node.type == 'funcdef': compare_node.type == 'funcdef':
# Here we're trying to find decorators by checking the first # Here we're trying to find decorators by checking the first
# parameter. It's not very generic though. Should find a better # parameter. It's not very generic though. Should find a better
# solution that also applies to nested decorators. # solution that also applies to nested decorators.
param_names, _ = value.parent_context.get_executed_param_names_and_issues() # TODO private access
param_names, _ = value.parent_context._arguments.get_executed_param_names_and_issues(
value.parent_context._value)
if len(param_names) != 1: if len(param_names) != 1:
continue continue
values = param_names[0].infer() values = param_names[0].infer()
@@ -227,5 +230,5 @@ def _check_name_for_execution(inference_state, context, compare_node, name, trai
name, name,
trailer trailer
) )
for function_execution in iterator: for arguments in iterator:
yield function_execution yield arguments

View File

@@ -329,7 +329,8 @@ class SimpleParamName(X):
def infer(self): def infer(self):
func_context = self.function_value.as_context() func_context = self.function_value.as_context()
param_names, _ = func_context.get_executed_param_names_and_issues() # TODO private access
param_names, _ = func_context._arguments.get_executed_param_names_and_issues(self.function_value)
return param_names[self._get_param_node().position_index].infer() return param_names[self._get_param_node().position_index].infer()

View File

@@ -285,9 +285,6 @@ class FunctionExecutionContext(ValueContext, TreeContextMixin):
arguments=self._arguments arguments=self._arguments
) )
def get_executed_param_names_and_issues(self):
return self._arguments.get_executed_param_names_and_issues(self._value)
def infer(self): def infer(self):
""" """
Created to be used by inheritance. Created to be used by inheritance.