1.1 --- a/transresults.py Sat May 25 17:55:55 2024 +0200
1.2 +++ b/transresults.py Sat May 25 18:05:52 2024 +0200
1.3 @@ -295,23 +295,24 @@
1.4
1.5 "A translation result for an invocation."
1.6
1.7 - def __init__(self, result_target, instructions, args=None):
1.8 + def __init__(self, result_target, instructions, result_type=None, args=None):
1.9 InstructionSequence.__init__(self, instructions)
1.10 self.result_target = result_target
1.11 + self.result_type = result_type
1.12 self.args = args
1.13
1.14 def yields_integer(self):
1.15 - return self.args and True or False
1.16 + return self.result_type == "__builtins__.int.int"
1.17
1.18 def __str__(self):
1.19 - if self.yields_integer():
1.20 + if self.yields_integer() and self.args is not None:
1.21 return ", ".join(self.args)
1.22 else:
1.23 return encode_instructions(self.instructions)
1.24
1.25 def __repr__(self):
1.26 - return "InvocationResult(%r, %r, %r)" % (self.result_target,
1.27 - self.instructions, self.args)
1.28 + return "InvocationResult(%r, %r, %r, %r)" % (self.result_target,
1.29 + self.instructions, self.result_type, self.args)
1.30
1.31 class InstantiationResult(InvocationResult, TrInstanceRef):
1.32
1.33 @@ -321,6 +322,9 @@
1.34 InstanceRef.__init__(self, ref)
1.35 InvocationResult.__init__(self, "__NULL", instructions)
1.36
1.37 + def yields_integer(self):
1.38 + return self.ref.get_origin() == "__builtins__.int.int"
1.39 +
1.40 def __repr__(self):
1.41 return "InstantiationResult(%r, %r)" % (self.ref, self.instructions)
1.42