diff --git a/jedi/api/classes.py b/jedi/api/classes.py index 7d506d3f..13dcda4d 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -236,7 +236,7 @@ class BaseName(object): The (row, column) of the start of the definition range. Rows start with 1, columns start with 0. - :rtype: Tuple[int, int] + :rtype: Optional[Tuple[int, int]] """ definition = self._name.tree_name.get_definition() if definition is None: @@ -248,11 +248,13 @@ class BaseName(object): The (row, column) of the end of the definition range. Rows start with 1, columns start with 0. - :rtype: Tuple[int, int] + :rtype: Optional[Tuple[int, int]] """ definition = self._name.tree_name.get_definition() if definition is None: - return self._name.end_pos + if self._name.tree_name is None: + return None + return self._name.tree_name.end_pos if self.type in ("function", "class"): last_leaf = definition.get_last_leaf() if last_leaf.type == "newline": diff --git a/test/test_api/test_classes.py b/test/test_api/test_classes.py index c5975032..c756b5e6 100644 --- a/test/test_api/test_classes.py +++ b/test/test_api/test_classes.py @@ -619,6 +619,7 @@ class AClass: 'code, pos, start, end', [ ('def a_func():\n return "bar"\n', (1, 4), (1, 0), (2, 16)), ('var1 = 12', (1, 0), (1, 0), (1, 9)), + ('var1 + 1', (1, 0), (1, 0), (1, 4)), ('class AClass: pass', (1, 6), (1, 0), (1, 18)), ('class AClass: pass\n', (1, 6), (1, 0), (1, 18)), (cls_code, (1, 6), (1, 0), (6, 23)),