mirror of
https://github.com/davidhalter/jedi.git
synced 2025-12-06 22:14:27 +08:00
Fix context issues when working with instances
This commit is contained in:
@@ -381,7 +381,7 @@ class OverloadedFunctionValue(FunctionMixin, ValueWrapper):
|
|||||||
return self._overloaded_functions
|
return self._overloaded_functions
|
||||||
|
|
||||||
|
|
||||||
def _find_overload_functions(value, tree_node):
|
def _find_overload_functions(context, tree_node):
|
||||||
def _is_overload_decorated(funcdef):
|
def _is_overload_decorated(funcdef):
|
||||||
if funcdef.parent.type == 'decorated':
|
if funcdef.parent.type == 'decorated':
|
||||||
decorators = funcdef.parent.children[0]
|
decorators = funcdef.parent.children[0]
|
||||||
@@ -404,8 +404,7 @@ def _find_overload_functions(value, tree_node):
|
|||||||
|
|
||||||
while True:
|
while True:
|
||||||
filter = ParserTreeFilter(
|
filter = ParserTreeFilter(
|
||||||
value.inference_state,
|
context,
|
||||||
value,
|
|
||||||
until_position=tree_node.start_pos
|
until_position=tree_node.start_pos
|
||||||
)
|
)
|
||||||
names = filter.get(tree_node.name.value)
|
names = filter.get(tree_node.name.value)
|
||||||
|
|||||||
@@ -483,14 +483,15 @@ class SelfAttributeFilter(ClassFilter):
|
|||||||
"""
|
"""
|
||||||
name_class = SelfName
|
name_class = SelfName
|
||||||
|
|
||||||
def __init__(self, value, class_value, origin_scope):
|
def __init__(self, instance, class_value, origin_scope):
|
||||||
super(SelfAttributeFilter, self).__init__(
|
super(SelfAttributeFilter, self).__init__(
|
||||||
parent_context=value,
|
parent_context=instance.parent_context,
|
||||||
node_context=class_value.as_context(),
|
node_context=class_value.as_context(),
|
||||||
origin_scope=origin_scope,
|
origin_scope=origin_scope,
|
||||||
is_instance=True,
|
is_instance=True,
|
||||||
)
|
)
|
||||||
self._class_value = class_value
|
self._class_value = class_value
|
||||||
|
self._instance = instance
|
||||||
|
|
||||||
def _filter(self, names):
|
def _filter(self, names):
|
||||||
names = self._filter_self_names(names)
|
names = self._filter_self_names(names)
|
||||||
@@ -508,7 +509,7 @@ class SelfAttributeFilter(ClassFilter):
|
|||||||
yield name
|
yield name
|
||||||
|
|
||||||
def _convert_names(self, names):
|
def _convert_names(self, names):
|
||||||
return [self.name_class(self.parent_context, self._class_value, name) for name in names]
|
return [self.name_class(self._instance, self._class_value, name) for name in names]
|
||||||
|
|
||||||
def _check_flows(self, names):
|
def _check_flows(self, names):
|
||||||
return names
|
return names
|
||||||
|
|||||||
Reference in New Issue
Block a user