[pypy-commit] pypy signatures: Support floats in signatures
Greg Price
noreply at buildbot.pypy.org
Tue Dec 4 07:49:44 CET 2012
Author: Greg Price <price at mit.edu>
Branch: signatures
Changeset: r59322:f48ed5fc47db
Date: 2012-12-03 21:06 -0800
http://bitbucket.org/pypy/pypy/changeset/f48ed5fc47db/
Log: Support floats in signatures
diff --git a/pypy/annotation/types.py b/pypy/annotation/types.py
--- a/pypy/annotation/types.py
+++ b/pypy/annotation/types.py
@@ -2,15 +2,27 @@
from pypy.annotation.listdef import ListDef
+def float():
+ return model.SomeFloat()
+
+def singlefloat():
+ return model.SomeSingleFloat()
+
+def longfloat():
+ return model.SomeLongFloat()
+
+
def int():
return model.SomeInteger()
+
def str():
return model.SomeString()
def char():
return model.SomeChar()
+
def list(element):
listdef = ListDef(None, element, mutated=True, resized=True)
return model.SomeList(listdef)
@@ -19,5 +31,6 @@
listdef = ListDef(None, element, mutated=True, resized=False)
return model.SomeList(listdef)
+
def instance(class_):
return lambda bookkeeper: model.SomeInstance(bookkeeper.getuniqueclassdef(class_))
diff --git a/pypy/rlib/test/test_signature.py b/pypy/rlib/test/test_signature.py
--- a/pypy/rlib/test/test_signature.py
+++ b/pypy/rlib/test/test_signature.py
@@ -75,6 +75,14 @@
def str_to_int(s):
return s
+
+def test_signature_float():
+ @signature(types.longfloat(), types.singlefloat(), returns=types.float())
+ def f(a, b):
+ return 3.0
+ assert getsig(f) == [model.SomeLongFloat(), model.SomeSingleFloat(), model.SomeFloat()]
+
+
def test_signature_list():
@signature(types.list(types.int()), returns=types.int())
def f(a):
@@ -127,6 +135,7 @@
l.append(2)
check_annotator_fails(try_append)
+
def test_signature_instance():
class C1(object):
pass
More information about the pypy-commit
mailing list