From e701a4ef928c0627f839259a55d88cebb644ee56 Mon Sep 17 00:00:00 2001 From: David Halter Date: Sat, 22 Dec 2012 19:43:30 +0100 Subject: [PATCH] lambdas: add correct parents and change evaluate --- jedi/evaluate.py | 4 ++-- jedi/parsing.py | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/jedi/evaluate.py b/jedi/evaluate.py index 9bbfd1ac..f768adcf 100644 --- a/jedi/evaluate.py +++ b/jedi/evaluate.py @@ -1374,8 +1374,8 @@ def follow_call_list(call_list): result += follow_statement(stmt) else: # With things like params, these can also be functions... - if isinstance(call, (Function, Class, Instance, - dynamic.ArrayInstance)): + if isinstance(call, (parsing.Lambda, Function, Class, + Instance, dynamic.ArrayInstance)): result.append(call) # The string tokens are just operations (+, -, etc.) elif not isinstance(call, (str, unicode)): diff --git a/jedi/parsing.py b/jedi/parsing.py index 962047f6..8388e6ae 100644 --- a/jedi/parsing.py +++ b/jedi/parsing.py @@ -1546,7 +1546,11 @@ class PyFuzzyParser(object): lambd = Lambda(self.module, params, start_pos) ret, tok = self._parse_statement(added_breaks=[',']) if ret is not None: + ret.parent = lambd lambd.returns.append(ret) + lambd.parent = self.scope + tok_list[-1] = lambd + continue elif token_type == tokenize.NAME: if tok == 'for': # list comprehensions!