diff --git a/jedi/api/classes.py b/jedi/api/classes.py index 413a97b4..69a7097d 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -27,8 +27,14 @@ def defined_names(evaluator, scope): :type scope: Scope :rtype: list of Definition """ - pair = next(get_names_of_scope(evaluator, scope, star_search=False, - include_builtin=False), None) + # Calling get_names_of_scope doesn't make sense always. It might include + # star imports or inherited stuff. Wanted? + # TODO discuss! + if isinstance(scope, pr.Module): + pair = scope, scope.get_defined_names() + else: + pair = next(get_names_of_scope(evaluator, scope, star_search=False, + include_builtin=False), None) names = pair[1] if pair else [] names = [n for n in names if isinstance(n, pr.Import) or (len(n) == 1)] return [Definition(evaluator, d) for d in sorted(names, key=lambda s: s.start_pos)]