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!