diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index 489fe2a0..74e48539 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -433,18 +433,15 @@ class Evaluator(object): parent_context = from_scope_node(parent_scope) if is_funcdef: - parent_was_class = parent_context.is_class() - if parent_was_class: - parent_context = AnonymousInstance( - self, parent_context.parent_context, parent_context) - func = FunctionContext.from_context(parent_context, scope_node) - - if parent_was_class: + if parent_context.is_class(): + instance = AnonymousInstance( + self, parent_context.parent_context, parent_context) func = BoundMethod( - instance=parent_context, + instance=instance, function=func ) + if is_nested and not node_is_object: return func.get_function_execution() return func diff --git a/jedi/evaluate/context/function.py b/jedi/evaluate/context/function.py index f4a46ec5..c9dfdeba 100644 --- a/jedi/evaluate/context/function.py +++ b/jedi/evaluate/context/function.py @@ -13,7 +13,7 @@ from jedi.evaluate.arguments import AnonymousArguments from jedi.evaluate.filters import ParserTreeFilter, FunctionExecutionFilter from jedi.evaluate.names import ContextName, AbstractNameDefinition, ParamName from jedi.evaluate.base_context import ContextualizedNode, NO_CONTEXTS, \ - ContextSet, TreeContext, ContextWrapper, LazyContextWrapper + ContextSet, TreeContext, ContextWrapper from jedi.evaluate.lazy_context import LazyKnownContexts, LazyKnownContext, \ LazyTreeContext from jedi.evaluate.context import iterable