mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-06 14:04:26 +08:00
Use a class_context instead of a class_value for MethodValue
This commit is contained in:
@@ -110,7 +110,7 @@ class FunctionValue(use_metaclass(CachedMetaClass, FunctionMixin, FunctionAndCla
|
||||
if context.is_class():
|
||||
return MethodValue(
|
||||
context.inference_state,
|
||||
context._value, # TODO private access!
|
||||
context,
|
||||
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_value, *args, **kwargs):
|
||||
def __init__(self, inference_state, class_context, *args, **kwargs):
|
||||
super(MethodValue, self).__init__(inference_state, *args, **kwargs)
|
||||
self.class_value = class_value
|
||||
self.class_context = class_context
|
||||
|
||||
def get_default_param_context(self):
|
||||
return self.class_value.as_context()
|
||||
return self.class_context
|
||||
|
||||
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_value.get_qualified_names()
|
||||
names = self.class_context.get_qualified_names()
|
||||
if names is None:
|
||||
return None
|
||||
return names + (self.py__name__(),)
|
||||
|
||||
@@ -124,14 +124,14 @@ def execute(callback):
|
||||
if isinstance(value, BoundMethod):
|
||||
if module_name == 'builtins':
|
||||
if value.py__name__() == '__get__':
|
||||
if value.class_value.py__name__() == 'property':
|
||||
if value.class_context.py__name__() == 'property':
|
||||
return builtins_property(
|
||||
value,
|
||||
arguments=arguments,
|
||||
callback=call,
|
||||
)
|
||||
elif value.py__name__() in ('deleter', 'getter', 'setter'):
|
||||
if value.class_value.py__name__() == 'property':
|
||||
if value.class_context.py__name__() == 'property':
|
||||
return ValueSet([value.instance])
|
||||
|
||||
return call()
|
||||
|
||||
Reference in New Issue
Block a user