From 6d3bb5c4b13b248cc2d72e551ed3f9af1b308a0a Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Mon, 2 Mar 2015 03:06:58 +0100 Subject: [PATCH] Fix generator comprehensions issue when used as an argument. --- jedi/evaluate/param.py | 9 ++++++++- test/completion/arrays.py | 5 +++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/jedi/evaluate/param.py b/jedi/evaluate/param.py index 44e6261f..5ae133f9 100644 --- a/jedi/evaluate/param.py +++ b/jedi/evaluate/param.py @@ -84,7 +84,14 @@ class Arguments(pr.Base): yield key, values else: if pr.is_node(el, 'argument'): - named_args.append((el.children[0].value, (el.children[2],))) + c = el.children + if len(c) == 3: # Keyword argument. + named_args.append((c[0].value, (c[2],))) + else: # Generator comprehension. + # Include the brackets with the parent. + comp = iterable.GeneratorComprehension( + self._evaluator, self.argument_node.parent) + yield None, (iterable.AlreadyEvaluated([comp]),) elif isinstance(el, (list, tuple)): yield None, el else: diff --git a/test/completion/arrays.py b/test/completion/arrays.py index 655738e1..1dc896e1 100644 --- a/test/completion/arrays.py +++ b/test/completion/arrays.py @@ -338,6 +338,11 @@ tuple((1,))[0] #? [] list().__iterable +# With a list comprehension. +for i in set(a for a in [1]): + #? int() + i + # ----------------- # Recursions