diff --git a/jedi/cache.py b/jedi/cache.py index ce710865..37d1c512 100644 --- a/jedi/cache.py +++ b/jedi/cache.py @@ -230,7 +230,7 @@ def save_parser(path, name, parser, pickling=True): class ParserPickling(object): - version = 21 + version = 22 """ Version number (integer) for file system cache. diff --git a/jedi/parser/tree.py b/jedi/parser/tree.py index 34edb95d..fd9b7fee 100644 --- a/jedi/parser/tree.py +++ b/jedi/parser/tree.py @@ -146,18 +146,27 @@ class Base(object): class Leaf(Base): - __slots__ = ('position_modifier', 'value', 'parent', 'start_pos', 'prefix') + __slots__ = ('position_modifier', 'value', 'parent', '_start_pos', 'prefix') def __init__(self, position_modifier, value, start_pos, prefix=''): self.position_modifier = position_modifier self.value = value - self.start_pos = start_pos + self._start_pos = start_pos self.prefix = prefix self.parent = None + @property + def start_pos(self): + return self._start_pos[0] + self.position_modifier.line, self._start_pos[1] + + @start_pos.setter + def start_pos(self, value): + self._start_pos = value + @property def end_pos(self): - return self.start_pos[0], self.start_pos[1] + len(self.value) + return (self._start_pos[0] + self.position_modifier.line, + self._start_pos[1] + len(self.value)) def get_code(self): return self.prefix + self.value