diff --git a/jedi/evaluate/context/instance.py b/jedi/evaluate/context/instance.py index 3136b376..78ba10ea 100644 --- a/jedi/evaluate/context/instance.py +++ b/jedi/evaluate/context/instance.py @@ -403,16 +403,12 @@ class BoundMethod(FunctionMixin, ContextWrapper): return '<%s: %s>' % (self.__class__.__name__, self._wrapped_context) -class CompiledBoundMethod(compiled.CompiledObject): - def __init__(self, func): - super(CompiledBoundMethod, self).__init__( - func.evaluator, func.access_handle, func.parent_context) - +class CompiledBoundMethod(ContextWrapper): def is_bound_method(self): return True - def get_param_names(self): - return list(super(CompiledBoundMethod, self).get_param_names())[1:] + def get_signatures(self): + return [sig.bind(self) for sig in self._wrapped_context.get_signatures()] class SelfName(TreeNameDefinition): diff --git a/jedi/evaluate/signature.py b/jedi/evaluate/signature.py index 1138617d..8206c11c 100644 --- a/jedi/evaluate/signature.py +++ b/jedi/evaluate/signature.py @@ -88,4 +88,5 @@ class BuiltinSignature(AbstractSignature): return self.context def bind(self, context): - raise NotImplementedError('pls implement, need test case, %s' % context) + assert not self.is_bound + return BuiltinSignature(context, self._return_string, is_bound=True)