1
0
forked from VimPlug/jedi

as_context caching

This commit is contained in:
Dave Halter
2019-08-18 17:52:15 +02:00
parent 8e60689bcf
commit 6fb49eaadf
10 changed files with 42 additions and 33 deletions

View File

@@ -93,7 +93,7 @@ class FunctionMixin(object):
return FunctionExecutionContext(self, arguments)
def as_context(self):
def _as_context(self):
return self.get_function_execution()
def get_signatures(self):
@@ -110,7 +110,7 @@ class FunctionValue(use_metaclass(CachedMetaClass, FunctionMixin, FunctionAndCla
if context.is_class():
return MethodValue(
context.inference_state,
context,
context._value, # TODO private access!
parent_context=parent_context,
tree_node=tree_node
)
@@ -148,17 +148,17 @@ class FunctionValue(use_metaclass(CachedMetaClass, FunctionMixin, FunctionAndCla
class MethodValue(FunctionValue):
def __init__(self, inference_state, class_context, *args, **kwargs):
def __init__(self, inference_state, class_value, *args, **kwargs):
super(MethodValue, self).__init__(inference_state, *args, **kwargs)
self.class_context = class_context
self.class_value = class_value
def get_default_param_context(self):
return self.class_context
return self.class_value
def get_qualified_names(self):
# Need to implement this, because the parent value of a method
# value is not the class value but the module.
names = self.class_context.get_qualified_names()
names = self.class_value.get_qualified_names()
if names is None:
return None
return names + (self.py__name__(),)