Commit 6a774aad authored by Robert Bradshaw's avatar Robert Bradshaw

Sage compiles

parent 296cc2df
...@@ -708,8 +708,7 @@ class StringNode(ConstNode): ...@@ -708,8 +708,7 @@ class StringNode(ConstNode):
def coerce_to(self, dst_type, env): def coerce_to(self, dst_type, env):
if dst_type.is_int: if dst_type.is_int:
if not self.type.is_pyobject and len(self.entry.init) == 1: if not self.type.is_pyobject and len(self.entry.init) == 1:
# we use the *encoded* value here return CharNode(self.pos, value=self.value)
return CharNode(self.pos, value=self.entry.init)
else: else:
error(self.pos, "Only coerce single-character ascii strings can be used as ints.") error(self.pos, "Only coerce single-character ascii strings can be used as ints.")
return self return self
......
...@@ -1888,7 +1888,7 @@ def p_c_arg_decl(s, ctx, in_pyfunc, cmethod_flag = 0, nonempty = 0, kw_only = 0) ...@@ -1888,7 +1888,7 @@ def p_c_arg_decl(s, ctx, in_pyfunc, cmethod_flag = 0, nonempty = 0, kw_only = 0)
if 'pxd' in s.level: if 'pxd' in s.level:
if s.sy not in ['*', '?']: if s.sy not in ['*', '?']:
error(pos, "default values cannot be specified in pxd files, use ? or *") error(pos, "default values cannot be specified in pxd files, use ? or *")
default = 1 default = ExprNodes.BoolNode(1)
s.next() s.next()
else: else:
default = p_simple_expr(s) default = p_simple_expr(s)
......
...@@ -28,6 +28,10 @@ class BasicVisitor(object): ...@@ -28,6 +28,10 @@ class BasicVisitor(object):
if m is not None: if m is not None:
break break
else: else:
print type(self), type(obj)
print self.access_path
print self.access_path[-1][0].pos
print self.access_path[-1][0].__dict__
raise RuntimeError("Visitor does not accept object: %s" % obj) raise RuntimeError("Visitor does not accept object: %s" % obj)
self.dispatch_table[mname] = m self.dispatch_table[mname] = m
return m(obj) return m(obj)
......
cdef class A:
cpdef foo(self, bint a=*, b=*)
__doc__ = """
>>> a = A()
>>> a.foo()
(True, 'yo')
>>> a.foo(False)
(False, 'yo')
>>> a.foo(10, 'yes')
(True, 'yes')
"""
cdef class A:
cpdef foo(self, bint a=True, b="yo"):
return a, b
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