From 78573b8fa25d527d45a501019c128fc4451c4a72 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 14 Oct 2016 14:44:30 +0200 Subject: [PATCH] Fix goto_definitions being invoked on a parent class When invoking `goto_definitions` on `RequestFactory` in line 5, it would jump to `Client` after 27f05de: ```python class RequestFactory(object): pass class Client(RequestFactory): pass ``` Fixes https://github.com/davidhalter/jedi/issues/761. --- jedi/evaluate/__init__.py | 4 +++- test/completion/classes.py | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index 37e0cd1c..9a6ad64a 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -446,7 +446,9 @@ class Evaluator(object): def_ = name.get_definition() is_simple_name = name.parent.type not in ('power', 'trailer') if is_simple_name: - if name.parent.type in ('file_input', 'classdef', 'funcdef'): + if name.parent.type == 'classdef' and name.parent.name == name: + return [self.wrap(name.parent)] + if name.parent.type in ('file_input', 'funcdef'): return [self.wrap(name.parent)] if def_.type == 'expr_stmt' and name in def_.get_defined_names(): return self.eval_statement(def_, name) diff --git a/test/completion/classes.py b/test/completion/classes.py index b4f67a1f..6aa226b4 100644 --- a/test/completion/classes.py +++ b/test/completion/classes.py @@ -160,6 +160,7 @@ class Mixin(SuperClass): def method_mixin(self): return int +#? 20 SuperClass class SubClass(SuperClass): class_sub = 3 def __init__(self):