From e5d1091e80748da8a07a653093163713faf0a671 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Tue, 3 Dec 2019 16:50:34 +0100 Subject: [PATCH] Make sure execute_function_slots and get_function_slots is defined for all instances --- jedi/inference/value/instance.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/jedi/inference/value/instance.py b/jedi/inference/value/instance.py index 586b0329..e703be29 100644 --- a/jedi/inference/value/instance.py +++ b/jedi/inference/value/instance.py @@ -107,6 +107,16 @@ class AbstractInstanceValue(Value): call_funcs = self.py__getattribute__('__call__').py__get__(self, self.class_value) return [s.bind(self) for s in call_funcs.get_signatures()] + def get_function_slot_names(self, name): + # Searches for Python functions in classes. + return [] + + def execute_function_slots(self, names, *inferred_args): + return ValueSet.from_sets( + name.infer().execute_with_values(*inferred_args) + for name in names + ) + def __repr__(self): return "<%s of %s>" % (self.__class__.__name__, self.class_value) @@ -286,12 +296,6 @@ class _BaseTreeInstance(AbstractInstanceValue): return names return [] - def execute_function_slots(self, names, *inferred_args): - return ValueSet.from_sets( - name.infer().execute_with_values(*inferred_args) - for name in names - ) - class TreeInstance(_BaseTreeInstance): def __init__(self, inference_state, parent_context, class_value, arguments):