Move get_signatures from Function to FunctionMixin

This commit is contained in:
Dave Halter
2019-07-29 20:17:03 +02:00
parent 22580f771c
commit f9de26f72c
2 changed files with 6 additions and 11 deletions

View File

@@ -100,6 +100,9 @@ class FunctionMixin(object):
return FunctionExecutionContext(self.evaluator, self.parent_context, self, arguments) return FunctionExecutionContext(self.evaluator, self.parent_context, self, arguments)
def get_signatures(self):
return [TreeSignature(self)]
class FunctionContext(use_metaclass(CachedMetaClass, FunctionMixin, FunctionAndClassBase)): class FunctionContext(use_metaclass(CachedMetaClass, FunctionMixin, FunctionAndClassBase)):
""" """
@@ -147,9 +150,6 @@ class FunctionContext(use_metaclass(CachedMetaClass, FunctionMixin, FunctionAndC
def get_default_param_context(self): def get_default_param_context(self):
return self.parent_context return self.parent_context
def get_signatures(self):
return [TreeSignature(self)]
class MethodContext(FunctionContext): class MethodContext(FunctionContext):
def __init__(self, evaluator, class_context, *args, **kwargs): def __init__(self, evaluator, class_context, *args, **kwargs):
@@ -394,7 +394,7 @@ class OverloadedFunctionContext(FunctionMixin, ContextWrapper):
return ContextSet.from_sets(fe.infer() for fe in function_executions) return ContextSet.from_sets(fe.infer() for fe in function_executions)
def get_signatures(self): def get_signatures(self):
return [TreeSignature(f) for f in self.overloaded_functions] return [s for f in self.overloaded_functions for s in f.get_signatures()]
def signature_matches(function_context, arguments): def signature_matches(function_context, arguments):

View File

@@ -25,6 +25,7 @@ from jedi.evaluate.base_context import ContextualizedNode, \
from jedi.evaluate.context import ClassContext, ModuleContext, \ from jedi.evaluate.context import ClassContext, ModuleContext, \
FunctionExecutionContext FunctionExecutionContext
from jedi.evaluate.context.klass import ClassMixin from jedi.evaluate.context.klass import ClassMixin
from jedi.evaluate.context.function import FunctionMixin
from jedi.evaluate.context import iterable from jedi.evaluate.context import iterable
from jedi.evaluate.lazy_context import LazyTreeContext, LazyKnownContext, \ from jedi.evaluate.lazy_context import LazyTreeContext, LazyKnownContext, \
LazyKnownContexts LazyKnownContexts
@@ -656,7 +657,7 @@ class WrapsCallable(ContextWrapper):
return ContextSet({Wrapped(func, self._wrapped_context) for func in funcs}) return ContextSet({Wrapped(func, self._wrapped_context) for func in funcs})
class Wrapped(ContextWrapper): class Wrapped(ContextWrapper, FunctionMixin):
def __init__(self, func, original_function): def __init__(self, func, original_function):
super(Wrapped, self).__init__(func) super(Wrapped, self).__init__(func)
self._original_function = original_function self._original_function = original_function
@@ -665,12 +666,6 @@ class Wrapped(ContextWrapper):
def name(self): def name(self):
return self._original_function.name return self._original_function.name
def get_signatures(self):
return [
ReplacedNameSignature(sig, self._original_function.name)
for sig in self._wrapped_context.get_signatures()
]
class ReplacedNameSignature(SignatureWrapper): class ReplacedNameSignature(SignatureWrapper):
def __init__(self, signature, name): def __init__(self, signature, name):