diff --git a/jedi/api.py b/jedi/api.py index 739bbabd..5573cddb 100644 --- a/jedi/api.py +++ b/jedi/api.py @@ -65,7 +65,13 @@ class Script(object): lines.append('') self._line = max(len(lines), 1) if line is None else line - self._column = len(lines[-1]) if column is None else column + if not (0 < self._line <= len(lines)): + raise ValueError('`line` parameter is not in a valid range.') + + line_len = len(lines[self._line - 1]) + self._column = line_len if column is None else column + if not (0 <= self._column <= line_len): + raise ValueError('`column` parameter is not in a valid range.') api_classes._clear_caches() debug.reset_time() diff --git a/test/test_api.py b/test/test_api.py index 4ee7db3c..66e2c5ff 100644 --- a/test/test_api.py +++ b/test/test_api.py @@ -50,4 +50,4 @@ def test_line_number_errors(): # ok api.Script(s, 1, 0) - api.Script(s, 1, len(s) + 1) + api.Script(s, 1, len(s))