From 1366f5fa6103cd4fb643463eb97d5f3eb9cffe76 Mon Sep 17 00:00:00 2001 From: David Halter Date: Sun, 17 Feb 2013 00:23:43 +0430 Subject: [PATCH] made ListComprehensions behave more llike typical 'pr' objects --- jedi/parsing.py | 5 ++--- jedi/parsing_representation.py | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/jedi/parsing.py b/jedi/parsing.py index a38b8746..b8419c26 100644 --- a/jedi/parsing.py +++ b/jedi/parsing.py @@ -439,9 +439,8 @@ class Parser(object): st = pr.Statement(self.module, src, [], [], [], toks, first_pos, self.end_pos) - for s in [st, middle, in_clause]: - s.parent = self.scope - tok = pr.ListComprehension(st, middle, in_clause) + tok = pr.ListComprehension(st, middle, in_clause, + self.scope) tok_list.append(tok) if list_comp: string = '' diff --git a/jedi/parsing_representation.py b/jedi/parsing_representation.py index cda636fd..b136fd4a 100644 --- a/jedi/parsing_representation.py +++ b/jedi/parsing_representation.py @@ -1166,12 +1166,23 @@ class Name(Simple): return len(self.names) -class ListComprehension(object): +class ListComprehension(Base): """ Helper class for list comprehensions """ - def __init__(self, stmt, middle, input): + def __init__(self, stmt, middle, input, parent): self.stmt = stmt self.middle = middle self.input = input + for s in [stmt, middle, input]: + s.parent = self + self.parent = parent + + @property + def start_pos(self): + return self.stmt.start_pos + + @property + def end_pos(self): + return self.stmt.end_pos def __repr__(self): return "<%s: %s>" % \