Use InstanceArguments directly and not via InstanceFunctionExecution

This commit is contained in:
Dave Halter
2018-08-05 14:34:44 +02:00
parent 0101fdd9da
commit 8cae517821

View File

@@ -24,7 +24,7 @@ class BaseInstanceFunctionExecution(FunctionExecutionContext):
class InstanceFunctionExecution(BaseInstanceFunctionExecution): class InstanceFunctionExecution(BaseInstanceFunctionExecution):
def __init__(self, instance, parent_context, function_context, var_args): def __init__(self, instance, parent_context, function_context, var_args):
var_args = InstanceVarArgs(instance, var_args) var_args = InstanceArguments(instance, var_args)
super(InstanceFunctionExecution, self).__init__( super(InstanceFunctionExecution, self).__init__(
instance, parent_context, function_context, var_args) instance, parent_context, function_context, var_args)
@@ -330,8 +330,12 @@ class BoundMethod(AbstractFunction):
return AnonymousInstanceFunctionExecution( return AnonymousInstanceFunctionExecution(
self._instance, self.parent_context, self, arguments) self._instance, self.parent_context, self, arguments)
else: else:
return InstanceFunctionExecution( return FunctionExecutionContext(
self._instance, self.parent_context, self, arguments) self.evaluator,
self.parent_context,
self,
InstanceArguments(self._instance, arguments)
)
def __repr__(self): def __repr__(self):
return '<%s: %s>' % (self.__class__.__name__, self._function) return '<%s: %s>' % (self.__class__.__name__, self._function)
@@ -448,7 +452,7 @@ class SelfAttributeFilter(ClassFilter):
return names return names
class InstanceVarArgs(AbstractArguments): class InstanceArguments(AbstractArguments):
def __init__(self, instance, var_args): def __init__(self, instance, var_args):
self._instance = instance self._instance = instance
self._var_args = var_args self._var_args = var_args