From 6a480780f8bb053f3532dbf8bde9ab7ee9f58c3c Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Fri, 26 Jul 2019 14:51:30 +0200 Subject: [PATCH] Some more tests --- jedi/evaluate/signature.py | 6 +++++- test/test_evaluate/test_signature.py | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/jedi/evaluate/signature.py b/jedi/evaluate/signature.py index ad514bbc..b00e328d 100644 --- a/jedi/evaluate/signature.py +++ b/jedi/evaluate/signature.py @@ -100,7 +100,11 @@ class TreeSignature(AbstractSignature): yield param_name for param_name in kwarg_params: - for param_names in _iter_nodes_for_param(param_name, star_count=2): + itered = list(_iter_nodes_for_param(param_name, star_count=2)) + if not itered: + yield param_name + + for param_names in itered: for p in param_names: if p.string_name not in used_names or p.get_kind() == Parameter.VAR_KEYWORD: used_names.add(p.string_name) diff --git a/test/test_evaluate/test_signature.py b/test/test_evaluate/test_signature.py index c6589b57..0a2c6235 100644 --- a/test/test_evaluate/test_signature.py +++ b/test/test_evaluate/test_signature.py @@ -109,6 +109,12 @@ def test_tree_signature(Script, environment, code, expected): 'x, /, *, y'), ('combined_redirect(combined_redirect(simple4, simple2), combined_redirect(simple5, kw))', 'a, b, x: int, /, *, a, b, c, **kwargs'), + ('combined_redirect(combined_redirect(a, kw), combined_redirect(kw, simple5))', + 'a, b, /, *args, y'), + + ('no_redirect(kw)', '*args, **kwargs'), + ('no_redirect(akw)', '*args, **kwargs'), + ('no_redirect(simple)', '*args, **kwargs'), ] ) def test_nested_signatures(Script, environment, combination, expected):