diff --git a/jedi/api/classes.py b/jedi/api/classes.py index e1021c2c..b7da6d0f 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -340,8 +340,11 @@ class BaseDefinition(object): return [_Param(self._evaluator, p) for p in params] def parent(self): - scope = self._definition.get_parent_until(pr.IsScope, include_current=False) - non_flow = scope.get_parent_until(pr.Flow, reverse=True) + if isinstance(self._definition, compiled.CompiledObject): + non_flow = self._definition.parent + else: + scope = self._definition.get_parent_until(pr.IsScope, include_current=False) + non_flow = scope.get_parent_until(pr.Flow, reverse=True) return Definition(self._evaluator, non_flow) def __repr__(self): diff --git a/test/test_api/test_api.py b/test/test_api/test_api.py index 2f95d14b..46be9626 100644 --- a/test/test_api/test_api.py +++ b/test/test_api/test_api.py @@ -54,8 +54,7 @@ def test_line_number_errors(): def _check_number(source, result='float'): completions = api.Script(source).completions() - #assert completions[0].parent().name == result - assert completions[0]._definition.parent.name == result + assert completions[0].parent().name == result def test_completion_on_number_literals():