diff --git a/jedi/api/__init__.py b/jedi/api/__init__.py index 08dc3e80..e2d28880 100644 --- a/jedi/api/__init__.py +++ b/jedi/api/__init__.py @@ -248,9 +248,13 @@ class Script(object): stmt = r.module.statements[-1] except IndexError: raise NotFoundError() - # Set the start_pos to a pseudo position, that doesn't exist but works - # perfectly well (for both completions in docstrings and statements). - stmt.start_pos = self._pos + user_stmt = self._parser.user_stmt() + if user_stmt is None or isinstance(user_stmt, pr.Param): + # Set the start_pos to a pseudo position, that doesn't exist but works + # perfectly well (for both completions in docstrings and statements). + stmt.start_pos = self._pos + else: + stmt.start_pos = user_stmt.start_pos[0], user_stmt.start_pos[1] - 1 stmt.parent = self._parser.user_scope() return stmt diff --git a/test/completion/goto.py b/test/completion/goto.py index 663c15d7..58ab2e6b 100644 --- a/test/completion/goto.py +++ b/test/completion/goto.py @@ -93,7 +93,7 @@ ClassVar().x = '' # Recurring use of the same var name, github #315 def f(t=None): - #! 9 ['t=None'] + #! 9 ['t = None'] t = t or 1 # -----------------