mirror of
https://github.com/davidhalter/jedi.git
synced 2026-05-19 23:09:43 +08:00
Fix some issues with params.
This commit is contained in:
+6
-10
@@ -156,10 +156,7 @@ class ExecutedParam(pr.Param):
|
|||||||
def eval(self, evaluator):
|
def eval(self, evaluator):
|
||||||
types = []
|
types = []
|
||||||
for v in self.values:
|
for v in self.values:
|
||||||
if isinstance(v, (pr.Simple, pr.Leaf)):
|
types += evaluator.eval_element(v)
|
||||||
types += evaluator.eval_element(v)
|
|
||||||
else:
|
|
||||||
types.append(v)
|
|
||||||
return types
|
return types
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@@ -246,21 +243,20 @@ def get_params(evaluator, func, var_args):
|
|||||||
if param.stars == 1:
|
if param.stars == 1:
|
||||||
# *args param
|
# *args param
|
||||||
array_type = pr.Array.TUPLE
|
array_type = pr.Array.TUPLE
|
||||||
lst_values = [iterable.MergedNodes(va_values)] if va_values else []
|
lst_values = [iterable.MergedNodes(va_values)]
|
||||||
for key, va_values in var_arg_iterator:
|
for key, va_values in var_arg_iterator:
|
||||||
# Iterate until a key argument is found.
|
# Iterate until a key argument is found.
|
||||||
if key:
|
if key:
|
||||||
var_arg_iterator.push_back((key, va_values))
|
var_arg_iterator.push_back((key, va_values))
|
||||||
break
|
break
|
||||||
lst_values.append(iterable.MergedNodes(va_values))
|
lst_values.append(iterable.MergedNodes(va_values))
|
||||||
if lst_values:
|
seq = iterable.FakeSequence(evaluator, lst_values, pr.Array.TUPLE)
|
||||||
values = [iterable.FakeSequence(evaluator, lst_values,
|
values = [iterable.AlreadyEvaluated([seq])]
|
||||||
pr.Array.TUPLE)]
|
|
||||||
#values = [helpers.stmts_to_stmt(v) for v in lst_values]
|
|
||||||
elif param.stars == 2:
|
elif param.stars == 2:
|
||||||
# **kwargs param
|
# **kwargs param
|
||||||
array_type = pr.Array.DICT
|
array_type = pr.Array.DICT
|
||||||
values = [iterable.FakeDict(evaluator, dict(non_matching_keys))]
|
dct = iterable.FakeDict(evaluator, dict(non_matching_keys))
|
||||||
|
values = [iterable.AlreadyEvaluated([dct])]
|
||||||
non_matching_keys = {}
|
non_matching_keys = {}
|
||||||
else:
|
else:
|
||||||
# normal param
|
# normal param
|
||||||
|
|||||||
@@ -494,7 +494,8 @@ class Function(use_metaclass(CachedMetaClass, Wrapper)):
|
|||||||
# Create param array.
|
# Create param array.
|
||||||
old_func = Function(self._evaluator, f, is_decorated=True)
|
old_func = Function(self._evaluator, f, is_decorated=True)
|
||||||
|
|
||||||
wrappers = self._evaluator.execute(decorator, (old_func,))
|
arg = iterable.AlreadyEvaluated([old_func])
|
||||||
|
wrappers = self._evaluator.execute(decorator, (arg,))
|
||||||
if not len(wrappers):
|
if not len(wrappers):
|
||||||
debug.warning('no wrappers found %s', self.base_func)
|
debug.warning('no wrappers found %s', self.base_func)
|
||||||
return self
|
return self
|
||||||
|
|||||||
Reference in New Issue
Block a user