diff --git a/jedi/api/classes.py b/jedi/api/classes.py index 346798f9..f26e803e 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -298,6 +298,11 @@ class BaseDefinition(object): stripped = self._definition if isinstance(stripped, pr.Name): stripped = stripped.parent + # We should probably work in `Finder._names_to_types` here. + if isinstance(stripped, pr.Function): + stripped = er.Function(self._evaluator, stripped) + elif isinstance(stripped, pr.Class): + stripped = er.Class(self._evaluator, stripped) if stripped.isinstance(pr.Statement): return self._evaluator.eval_statement(stripped) diff --git a/test/test_api/test_api_classes.py b/test/test_api/test_api_classes.py index ecb89aa0..c0a04288 100644 --- a/test/test_api/test_api_classes.py +++ b/test/test_api/test_api_classes.py @@ -139,3 +139,4 @@ def test_signature_params(): check(Script(s).goto_definitions()) check(Script(s).goto_assignments()) + check(Script(s + '\nbar=foo\nbar').goto_assignments())