diff --git a/jedi/api/classes.py b/jedi/api/classes.py index 84a2685e..172038d3 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -277,6 +277,9 @@ class BaseDefinition(object): return '.'.join(names) def is_stub(self): + if not self._name.is_context_name: + return False + return self._name.get_root_context().is_stub() def goto_assignments(self, **kwargs): # Python 2... diff --git a/jedi/api/helpers.py b/jedi/api/helpers.py index 75024df1..06566aa5 100644 --- a/jedi/api/helpers.py +++ b/jedi/api/helpers.py @@ -143,9 +143,10 @@ def evaluate_goto_definition(evaluator, context, leaf): if leaf.type == 'name': # In case of a name we can just use goto_definition which does all the # magic itself. - name = TreeNameDefinition(context, leaf) - if leaf.parent.type in ('trailer', 'error_node'): + print(leaf.parent) + if leaf.parent.type in ('trailer', 'error_node', 'dotted_name'): return evaluator.goto_definitions(context, leaf) + name = TreeNameDefinition(context, leaf) return ContextSet.from_sets( name.infer() for name in convert_names([name], prefer_stubs=True) )