Fix context issues when working with instances

This commit is contained in:
Dave Halter
2019-08-22 17:11:54 +02:00
parent b97237f264
commit f87f8c028b
2 changed files with 6 additions and 6 deletions

View File

@@ -381,7 +381,7 @@ class OverloadedFunctionValue(FunctionMixin, ValueWrapper):
return self._overloaded_functions
def _find_overload_functions(value, tree_node):
def _find_overload_functions(context, tree_node):
def _is_overload_decorated(funcdef):
if funcdef.parent.type == 'decorated':
decorators = funcdef.parent.children[0]
@@ -404,8 +404,7 @@ def _find_overload_functions(value, tree_node):
while True:
filter = ParserTreeFilter(
value.inference_state,
value,
context,
until_position=tree_node.start_pos
)
names = filter.get(tree_node.name.value)

View File

@@ -483,14 +483,15 @@ class SelfAttributeFilter(ClassFilter):
"""
name_class = SelfName
def __init__(self, value, class_value, origin_scope):
def __init__(self, instance, class_value, origin_scope):
super(SelfAttributeFilter, self).__init__(
parent_context=value,
parent_context=instance.parent_context,
node_context=class_value.as_context(),
origin_scope=origin_scope,
is_instance=True,
)
self._class_value = class_value
self._instance = instance
def _filter(self, names):
names = self._filter_self_names(names)
@@ -508,7 +509,7 @@ class SelfAttributeFilter(ClassFilter):
yield name
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):
return names