Commit 98cb5a8e authored by Robert Bradshaw's avatar Robert Bradshaw

Fix types of marked integer literals.

parent 679b58a6
...@@ -787,7 +787,12 @@ class IntNode(ConstNode): ...@@ -787,7 +787,12 @@ class IntNode(ConstNode):
unsigned = "" unsigned = ""
longness = "" longness = ""
type = PyrexTypes.c_long_type
def __init__(self, pos, **kwds):
ExprNode.__init__(self, pos, **kwds)
rank = max(1, len(self.longness))
sign = not self.unsigned
self.type = PyrexTypes.modifiers_and_name_to_type[sign, rank, "int"]
def coerce_to(self, dst_type, env): def coerce_to(self, dst_type, env):
if self.type is dst_type: if self.type is dst_type:
......
...@@ -6,6 +6,7 @@ __doc__ = u""" ...@@ -6,6 +6,7 @@ __doc__ = u"""
""" """
import sys import sys
from cython cimport typeof
if sys.version_info[0] >= 3: if sys.version_info[0] >= 3:
__doc__ = __doc__.replace(u'L', u'') __doc__ = __doc__.replace(u'L', u'')
...@@ -35,3 +36,20 @@ def large_literal(): ...@@ -35,3 +36,20 @@ def large_literal():
return 0xFFFFFFFFFFFF return 0xFFFFFFFFFFFF
else: else:
return 0xFFFFFFF return 0xFFFFFFF
def c_long_types():
"""
>>> c_long_types()
long
long
long long
unsigned long
unsigned long
unsigned long long
"""
print typeof(1)
print typeof(1L)
print typeof(1LL)
print typeof(1U)
print typeof(1UL)
print typeof(1ULL)
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