From b9127147e46997b79bdb99562b5fccbd97bbb49a Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 22 Sep 2018 21:45:34 +0200 Subject: [PATCH] Recognize {**d} as a dict instead of set --- jedi/evaluate/syntax_tree.py | 3 ++- test/completion/types.py | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/jedi/evaluate/syntax_tree.py b/jedi/evaluate/syntax_tree.py index dc7ea0a7..720ea349 100644 --- a/jedi/evaluate/syntax_tree.py +++ b/jedi/evaluate/syntax_tree.py @@ -255,7 +255,8 @@ def eval_atom(context, atom): array_node_c = array_node.children except AttributeError: array_node_c = [] - if c[0] == '{' and (array_node == '}' or ':' in array_node_c): + if c[0] == '{' and (array_node == '}' or ':' in array_node_c or + '**' in array_node_c): context = iterable.DictLiteralContext(context.evaluator, context, atom) else: context = iterable.SequenceLiteralContext(context.evaluator, context, atom) diff --git a/test/completion/types.py b/test/completion/types.py index 19621b29..a6aca08b 100644 --- a/test/completion/types.py +++ b/test/completion/types.py @@ -131,3 +131,11 @@ set_t2 = set() #? ['clear', 'copy'] set_t2.c + +# ----------------- +# pep 448 unpacking generalizations +# ----------------- +# python >= 3.5 + +#? dict() +{**d}