From 2f562040ac91bf35fb81be90a5aa96acbdf4c04e Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Sun, 14 Apr 2019 18:44:58 +0200 Subject: [PATCH] Fix a few remaining issues about the current branch --- jedi/api/classes.py | 12 +++++++----- jedi/evaluate/__init__.py | 7 ++----- jedi/evaluate/gradual/stub_context.py | 2 ++ 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/jedi/api/classes.py b/jedi/api/classes.py index c5ade9f9..e594c195 100644 --- a/jedi/api/classes.py +++ b/jedi/api/classes.py @@ -320,13 +320,15 @@ class BaseDefinition(object): # TODO remove this paragraph, it's ugly and shouldn't be needed inferred = self._name.infer() - if not inferred: - return None - inferred = next(iter(inferred)) - if isinstance(inferred, MethodContext): - c = inferred.class_context + if inferred: + inferred = next(iter(inferred)) + if isinstance(inferred, MethodContext): + c = inferred.class_context + else: + c = self._name.parent_context else: c = self._name.parent_context + names = self._evaluator.goto(c, self._name.tree_name) return [Definition(self._evaluator, n) for n in names] diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index e402a8aa..bd01da71 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -439,12 +439,9 @@ class Evaluator(object): if parent_was_class: parent_context = AnonymousInstance( self, parent_context.parent_context, parent_context) - cls = MethodContext - else: - cls = FunctionContext - func = cls.from_context(parent_context, scope_node) - func = next(iter(stubify(func))) + func = FunctionContext.from_context(parent_context, scope_node) + func = next(iter(stubify(parent_context, func))) if parent_was_class: func = BoundMethod( diff --git a/jedi/evaluate/gradual/stub_context.py b/jedi/evaluate/gradual/stub_context.py index f73eefbe..3d3ab37f 100644 --- a/jedi/evaluate/gradual/stub_context.py +++ b/jedi/evaluate/gradual/stub_context.py @@ -266,6 +266,8 @@ def _add_stub_if_possible(parent_context, actual_context, stub_contexts): def with_stub_context_if_possible(actual_context): + if actual_context.tree_node.type == 'lambdef': + return ContextSet([actual_context]) assert actual_context.tree_node.type in ('classdef', 'funcdef') qualified_names = actual_context.get_qualified_names() stub_module = actual_context.get_root_context().stub_context