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 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)

View File

@@ -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