Commit 679b58a6 authored by Robert Bradshaw's avatar Robert Bradshaw

More large literal as double fixes.

parent fb7cf01b
...@@ -4993,8 +4993,9 @@ class NumBinopNode(BinopNode): ...@@ -4993,8 +4993,9 @@ class NumBinopNode(BinopNode):
return return
if self.type.is_complex: if self.type.is_complex:
self.infix = False self.infix = False
self.operand1 = self.operand1.coerce_to(self.type, env) if not self.infix or (type1.is_numeric and type2.is_numeric):
self.operand2 = self.operand2.coerce_to(self.type, env) self.operand1 = self.operand1.coerce_to(self.type, env)
self.operand2 = self.operand2.coerce_to(self.type, env)
def compute_c_result_type(self, type1, type2): def compute_c_result_type(self, type1, type2):
if self.c_types_okay(type1, type2): if self.c_types_okay(type1, type2):
......
...@@ -3345,7 +3345,7 @@ class InPlaceAssignmentNode(AssignmentNode): ...@@ -3345,7 +3345,7 @@ class InPlaceAssignmentNode(AssignmentNode):
import ExprNodes import ExprNodes
if self.lhs.type.is_pyobject: if self.lhs.type.is_pyobject:
self.rhs = self.rhs.coerce_to_pyobject(env) self.rhs = self.rhs.coerce_to_pyobject(env)
elif self.rhs.type.is_pyobject: elif self.rhs.type.is_pyobject or (self.lhs.type.is_numeric and self.rhs.type.is_numeric):
self.rhs = self.rhs.coerce_to(self.lhs.type, env) self.rhs = self.rhs.coerce_to(self.lhs.type, env)
if self.lhs.type.is_pyobject: if self.lhs.type.is_pyobject:
self.result_value_temp = ExprNodes.PyTempNode(self.pos, env) self.result_value_temp = ExprNodes.PyTempNode(self.pos, env)
......
...@@ -66,6 +66,8 @@ def test_complex(x): ...@@ -66,6 +66,8 @@ def test_complex(x):
def test_large_int(double x): def test_large_int(double x):
""" """
>>> test_large_int(0) >>> test_large_int(0)
1e+100 2e+100
""" """
return x + 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 a = x + 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
a += 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
return a
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment