From 1495a0ec4c73910024058784a75f7fa5694ea807 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Tue, 3 Sep 2019 01:28:54 +0200 Subject: [PATCH] Move the normal anonymous arguments case over to names --- jedi/inference/filters.py | 8 ++++++-- jedi/inference/names.py | 4 ++-- jedi/inference/value/function.py | 2 -- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/jedi/inference/filters.py b/jedi/inference/filters.py index 6e272580..b47d024c 100644 --- a/jedi/inference/filters.py +++ b/jedi/inference/filters.py @@ -13,7 +13,8 @@ from jedi.inference.base_value import ValueSet, Value, ValueWrapper, \ LazyValueWrapper from jedi.parser_utils import get_cached_parent_scope from jedi.inference.utils import to_list -from jedi.inference.names import TreeNameDefinition, ParamName, AbstractNameDefinition +from jedi.inference.names import TreeNameDefinition, ParamName, \ + SimpleParamName, AbstractNameDefinition _definition_name_cache = weakref.WeakKeyDictionary() @@ -158,7 +159,10 @@ class FunctionExecutionFilter(ParserTreeFilter): for name in names: param = search_ancestor(name, 'param') if param: - yield ParamName(self._function_value, name, self._arguments) + if self._arguments: + yield ParamName(self._function_value, name, self._arguments) + else: + yield SimpleParamName(self._function_value, name) else: yield TreeNameDefinition(self.parent_context, name) diff --git a/jedi/inference/names.py b/jedi/inference/names.py index 7b49071f..f4eb0c23 100644 --- a/jedi/inference/names.py +++ b/jedi/inference/names.py @@ -331,9 +331,9 @@ class SimpleParamName(X): values = super(SimpleParamName, self).infer() if values: return values - func_context = self.function_value.as_context() # TODO private access - param_names, _ = func_context._arguments.get_executed_param_names_and_issues(self.function_value) + from jedi.inference.dynamic_params import search_param_names + param_names = search_param_names(self.function_value.inference_state, self.function_value, self.function_value.tree_node) return param_names[self._get_param_node().position_index].infer() diff --git a/jedi/inference/value/function.py b/jedi/inference/value/function.py index c03e38af..a7dc663a 100644 --- a/jedi/inference/value/function.py +++ b/jedi/inference/value/function.py @@ -86,8 +86,6 @@ class FunctionMixin(object): return function_execution.infer() def _as_context(self, arguments=None): - if arguments is None: - arguments = AnonymousArguments() return FunctionExecutionContext(self, arguments) def get_signatures(self):